Skip to content

Add build scritps for Windows, macOs and Linux#109

Open
peacefulprogram wants to merge 3 commits intoHarlonWang:mainfrom
peacefulprogram:main
Open

Add build scritps for Windows, macOs and Linux#109
peacefulprogram wants to merge 3 commits intoHarlonWang:mainfrom
peacefulprogram:main

Conversation

@peacefulprogram
Copy link

@peacefulprogram peacefulprogram commented Mar 8, 2026

Summary by Sourcery

添加跨平台构建脚本和配置更新,用于构建 JNI 共享库,包括对 Windows 的支持以及构建流程文档。

新功能:

  • 引入 shell 和 batch 脚本,用于在 Linux、macOS 和 Windows 上构建 JNI 共享库。

改进:

  • 在 README 中记录 JNI 构建的前置条件以及各平台的构建命令。
  • 调整 JNI 的 CMake 配置和本地包装器类定义,以改进跨平台兼容性,包括 Windows 的头文件包含路径。
Original summary in English

Summary by Sourcery

Add cross-platform build scripts and configuration updates for building the JNI shared library, including Windows support and documentation for the build process.

New Features:

  • Introduce shell and batch scripts to build the JNI shared library on Linux, macOS, and Windows.

Enhancements:

  • Document the JNI build prerequisites and platform-specific build commands in the README.
  • Adjust JNI CMake configuration and native wrapper class definition to improve cross-platform compatibility, including Windows include paths.

@sourcery-ai
Copy link

sourcery-ai bot commented Mar 8, 2026

Reviewer's Guide

添加跨平台 JNI 构建脚本和文档,修复一个 QuickJS 类定义初始化器,并调整 CMake include 路径以更好地支持 Windows 构建。

File-Level Changes

Change Details Files
在 README 中记录跨平台 JNI 构建步骤。
  • 描述前置条件:JDK、CMake、JAVA_HOME 和 PATH 配置
  • 在 wrapper-java/src/main 中添加使用 MinGW Makefiles 的 Windows 特定说明
  • 在 wrapper-java/src/main 中添加使用标准 CMake 构建的 Linux/macOS 说明
README.md
修复 JSFuncCallback 类定义初始化,以兼容 QuickJS API 和/或旧版编译器。
  • 将 JSClassDef 的指定初始化器替换为位置初始化器
  • 显式设置 finalizer 以及剩余的 JSClassDef 字段(GC mark、call、exotic),分别为 jsFuncCallbackFinalizer 和若干 nullptr
native/cpp/quickjs_wrapper.cpp
调整 CMake 中 JNI 的 include 目录以支持多平台构建。
  • 在保留 darwin 和 linux 路径的同时,将 JAVA_HOME/include/win32 添加到 JNI include 搜索路径中
wrapper-java/src/main/CMakeLists.txt
引入便捷脚本,用于在 Linux/macOS 和 Windows 上构建并拷贝 JNI 共享库。
  • 添加 POSIX shell 脚本,用于重建 wrapper-java/src/main,基于 uname 选择 .dylib 或 .so,并将产物复制到项目根目录
  • 添加 Windows 批处理脚本,使用 MinGW Makefiles 重建 wrapper-java\src\main,并将生成的 .dll 复制到项目根目录
build-jni.sh
build-jni.bat

Possibly linked issues

  • #(not specified):两者都涉及 Windows 支持以及构建 libquickjs-java-wrapper JNI 库,并添加了正确的 Windows 构建/配置步骤。

Tips and commands

Interacting with Sourcery

  • 触发新的代码审查: 在 pull request 中评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审查评论。
  • 从审查评论生成 GitHub issue: 通过回复某条审查评论,要求 Sourcery 从该评论创建 issue。你也可以在审查评论下回复 @sourcery-ai issue 来从该评论创建 issue。
  • 生成 pull request 标题: 在 pull request 标题中的任意位置写上 @sourcery-ai,即可随时生成标题。你也可以在 pull request 中评论 @sourcery-ai title 来(重新)生成标题。
  • 生成 pull request 摘要: 在 pull request 正文中的任意位置写上 @sourcery-ai summary,即可在指定位置生成 PR 摘要。你也可以在 pull request 中评论 @sourcery-ai summary 来随时(重新)生成摘要。
  • 生成审查者指南: 在 pull request 中评论 @sourcery-ai guide,即可随时(重新)生成审查者指南。
  • 一次性解决所有 Sourcery 评论: 在 pull request 中评论 @sourcery-ai resolve,即可将所有 Sourcery 评论标记为已解决。如果你已经处理完所有评论且不想再看到它们,这会非常有用。
  • 忽略所有 Sourcery 审查: 在 pull request 中评论 @sourcery-ai dismiss,即可忽略所有现有的 Sourcery 审查。特别适用于你希望从一次全新的审查开始——别忘了再评论 @sourcery-ai review 来触发新的审查!

Customizing Your Experience

访问你的 dashboard 以:

  • 启用或禁用诸如 Sourcery 生成的 pull request 摘要、审查者指南等审查功能。
  • 更改审查语言。
  • 添加、移除或编辑自定义审查说明。
  • 调整其他审查设置。

Getting Help

Original review guide in English

Reviewer's Guide

Adds cross-platform JNI build scripts and documentation, fixes a QuickJS class definition initializer, and adjusts CMake include paths to better support Windows builds.

File-Level Changes

Change Details Files
Document cross-platform JNI build steps in README.
  • Describe prerequisites: JDK, CMake, JAVA_HOME, and PATH configuration
  • Add Windows-specific instructions using MinGW Makefiles in wrapper-java/src/main
  • Add Linux/macOS instructions using standard CMake build in wrapper-java/src/main
README.md
Fix JSFuncCallback class definition initialization for compatibility with the QuickJS API and/or older compilers.
  • Replace designated initializer for JSClassDef with positional initializer
  • Explicitly set finalizer and remaining JSClassDef fields (GC mark, call, exotic) to jsFuncCallbackFinalizer and nullptrs, respectively
native/cpp/quickjs_wrapper.cpp
Adjust CMake JNI include directories for multi-platform builds.
  • Add JAVA_HOME/include/win32 to JNI include search paths while retaining darwin and linux paths
wrapper-java/src/main/CMakeLists.txt
Introduce convenience scripts to build and copy the JNI shared library on Linux/macOS and Windows.
  • Add POSIX shell script that rebuilds wrapper-java/src/main, selects .dylib vs .so based on uname, and copies artifact to project root
  • Add Windows batch script that rebuilds wrapper-java\src\main using MinGW Makefiles and copies resulting .dll to project root
build-jni.sh
build-jni.bat

Possibly linked issues

  • #(not specified): They both address Windows support and building the libquickjs-java-wrapper JNI library, adding proper Windows build/configuration steps.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - 我发现了 6 个问题,并留下了一些整体性的反馈:

  • 在 quickjs_wrapper.cpp 中,将 JSClassDef 从指定初始化器切换为位置参数,会让代码在上游结构体变更时更加脆弱;建议保留指定初始化器,或者显式将结构体剩余字段置零初始化。
  • CMakeLists.txt 中硬编码的 $ENV{JAVA_HOME}/include/win32 路径在所有 JDK 发行版上可能并不存在(有些使用 windows);可以考虑自动检测正确的子目录,或者按平台做条件包含。
  • README 中的构建说明和新的 build-jni 脚本现在存在逻辑重复;建议更新 README,让其直接引用这些脚本,以避免未来两边内容出现偏差。
给 AI Agent 的提示
Please address the comments from this code review:

## Overall Comments
- 在 quickjs_wrapper.cpp 中,将 JSClassDef 从指定初始化器切换为位置参数,会让代码在上游结构体变更时更加脆弱;建议保留指定初始化器,或者显式将结构体剩余字段置零初始化。
- CMakeLists.txt 中硬编码的 `$ENV{JAVA_HOME}/include/win32` 路径在所有 JDK 发行版上可能并不存在(有些使用 `windows`);可以考虑自动检测正确的子目录,或者按平台做条件包含。
- README 中的构建说明和新的 build-jni 脚本现在存在逻辑重复;建议更新 README,让其直接引用这些脚本,以避免未来两边内容出现偏差。

## Individual Comments

### Comment 1
<location path="build-jni.sh" line_range="1-3" />
<code_context>
+
+- For Linux and macOS
+```shell
+cd wrapper-java/src/main
+cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
+cmake --build build
</code_context>
<issue_to_address>
**suggestion:** 使用相对路径的 `cd` 会导致脚本在仓库根目录之外运行时变得脆弱

这依赖当前工作目录是仓库根目录,如果在其他位置调用就会出错。建议从脚本所在位置推导路径,比如 `cd "$(dirname "$0")/wrapper-java/src/main"`,这样无论从哪里调用都能正常工作。

```suggestion
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/wrapper-java/src/main"
```
</issue_to_address>

### Comment 2
<location path="build-jni.sh" line_range="16" />
<code_context>
+else
+    DYLIB_EXT="so"      # Linux
+fi
+cp build/libquickjs-java-wrapper.$DYLIB_EXT ../../..
+echo Build success
\ No newline at end of file
</code_context>
<issue_to_address>
**suggestion:** `cp` 中未加引号的路径在包含空格时会出问题

如果仓库所在路径中有空格(例如位于 `Program Files` 下),这个 `cp` 会失败。请同时给源路径和目标路径加上引号,例如 `cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."`,以提高在此类路径下的健壮性。

```suggestion
cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."
```
</issue_to_address>

### Comment 3
<location path="build-jni.bat" line_range="2" />
<code_context>
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
+- For Windows
+```bash
+cd wrapper-java\src\main
+cmake -B build -S .  -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
+cmake --build build
</code_context>
<issue_to_address>
**suggestion:** 批处理脚本中的相对 `cd` 和未加引号路径在某些环境下会导致失败

这些命令假定脚本从仓库根目录运行,并且目录路径中没有空格。为了提高健壮性,建议基于脚本所在路径构造路径(例如 `cd /d "%~dp0wrapper-java\src\main"`),并为所有路径参数加上引号。
</issue_to_address>

### Comment 4
<location path="build-jni.bat" line_range="7-8" />
<code_context>
+    echo Deleting old build folder...
+    rmdir /s /q build
+)
+cmake -B build -S . -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
+cmake --build build
+COPY build\libquickjs-java-wrapper.dll ..\..\..
+echo Build success
</code_context>
<issue_to_address>
**suggestion (bug_risk):** 批处理脚本缺少错误处理,可能会掩盖构建失败

如果某条 `cmake` 命令失败,脚本仍然会复制 DLL 并打印 `Build success`,从而掩盖失败。请在每次 `cmake` 调用之后增加错误检查(例如 `if errorlevel 1 goto :eof``exit /b 1`),这样在构建失败时脚本会停止执行并返回非零退出码。
</issue_to_address>

### Comment 5
<location path="README.md" line_range="75" />
<code_context>
 git submodule update --init
 ```
+To build the JNI shared library, please follow these steps: 
+- Install [jdk](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
+- Set the **JAVA_HOME** system environment variable, and add **cmake** to your **PATH**.
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
</code_context>
<issue_to_address>
**nitpick (typo):** 建议将链接文本中的 "jdk" 首字母大写为 "JDK"。

由于这里指的是 Java Development Kit 的产品名称,请在链接文本中使用 "JDK" 而不是 "jdk"。

```suggestion
- Install [JDK](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
```
</issue_to_address>

### Comment 6
<location path="README.md" line_range="77" />
<code_context>
+To build the JNI shared library, please follow these steps: 
+- Install [jdk](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
+- Set the **JAVA_HOME** system environment variable, and add **cmake** to your **PATH**.
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
+- For Windows
+```bash
</code_context>
<issue_to_address>
**suggestion (typo):** 关于将 bin 目录加入 PATH 的语法可以再更严谨一些。

可以改成:“For Windows users, install [mingw-w64](...) and add the **bin** directory to your **PATH**.” 这样补上了缺失的冠词,并更明确地说明是添加到用户自己的 PATH 中。

```suggestion
For Windows users, install [mingw-w64](https://github.com/skeeto/w64devkit) and add the **bin** directory to your **PATH**.  
```
</issue_to_address>

Sourcery 对开源项目是免费的——如果你觉得我们的评审有帮助,欢迎分享给他人 ✨
帮我变得更有用!请在每条评论上点击 👍 或 👎,我会根据你的反馈改进后续的评审。
Original comment in English

Hey - I've found 6 issues, and left some high level feedback:

  • In quickjs_wrapper.cpp, switching from a designated initializer to positional arguments for JSClassDef makes the code more brittle against upstream struct changes; consider keeping designated initializers or explicitly zero-initializing the rest of the struct.
  • The hardcoded $ENV{JAVA_HOME}/include/win32 path in CMakeLists.txt may not exist on all JDK distributions (some use windows instead); consider detecting the correct subdirectory or guarding this include by platform.
  • The README build instructions and the new build-jni scripts now duplicate logic; consider updating the README to reference the scripts directly to avoid divergence in future changes.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In quickjs_wrapper.cpp, switching from a designated initializer to positional arguments for JSClassDef makes the code more brittle against upstream struct changes; consider keeping designated initializers or explicitly zero-initializing the rest of the struct.
- The hardcoded `$ENV{JAVA_HOME}/include/win32` path in CMakeLists.txt may not exist on all JDK distributions (some use `windows` instead); consider detecting the correct subdirectory or guarding this include by platform.
- The README build instructions and the new build-jni scripts now duplicate logic; consider updating the README to reference the scripts directly to avoid divergence in future changes.

## Individual Comments

### Comment 1
<location path="build-jni.sh" line_range="1-3" />
<code_context>
+
+- For Linux and macOS
+```shell
+cd wrapper-java/src/main
+cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
+cmake --build build
</code_context>
<issue_to_address>
**suggestion:** Using a relative `cd` makes the script fragile when run from outside the repo root

This relies on the current working directory being the repo root, so it breaks when invoked from elsewhere. Prefer deriving the path from the script location, e.g. `cd "$(dirname "$0")/wrapper-java/src/main"`, so it works regardless of where it’s called from.

```suggestion
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/wrapper-java/src/main"
```
</issue_to_address>

### Comment 2
<location path="build-jni.sh" line_range="16" />
<code_context>
+else
+    DYLIB_EXT="so"      # Linux
+fi
+cp build/libquickjs-java-wrapper.$DYLIB_EXT ../../..
+echo Build success
\ No newline at end of file
</code_context>
<issue_to_address>
**suggestion:** Unquoted paths in `cp` can break when the path contains spaces

If the repo is in a path with spaces (e.g. under `Program Files`), this `cp` will fail. Please quote both source and destination, e.g. `cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."`, to make it robust to such paths.

```suggestion
cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."
```
</issue_to_address>

### Comment 3
<location path="build-jni.bat" line_range="2" />
<code_context>
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
+- For Windows
+```bash
+cd wrapper-java\src\main
+cmake -B build -S .  -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
+cmake --build build
</code_context>
<issue_to_address>
**suggestion:** Relative `cd` and unquoted paths in the batch script can cause failures in some environments

These commands assume the script is run from the repo root and that no directories contain spaces. To make it more robust, base paths on the script location (e.g. `cd /d "%~dp0wrapper-java\src\main"`) and quote all path arguments.
</issue_to_address>

### Comment 4
<location path="build-jni.bat" line_range="7-8" />
<code_context>
+    echo Deleting old build folder...
+    rmdir /s /q build
+)
+cmake -B build -S . -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
+cmake --build build
+COPY build\libquickjs-java-wrapper.dll ..\..\..
+echo Build success
</code_context>
<issue_to_address>
**suggestion (bug_risk):** Lack of error handling in the batch script can hide build failures

If a `cmake` command fails, the script still copies the DLL and prints `Build success`, masking the failure. Add an error check (e.g., `if errorlevel 1 goto :eof` or `exit /b 1`) after each `cmake` call so the script stops and returns a non‑zero code on build failure.
</issue_to_address>

### Comment 5
<location path="README.md" line_range="75" />
<code_context>
 git submodule update --init
 ```
+To build the JNI shared library, please follow these steps: 
+- Install [jdk](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
+- Set the **JAVA_HOME** system environment variable, and add **cmake** to your **PATH**.
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
</code_context>
<issue_to_address>
**nitpick (typo):** Consider capitalizing "jdk" to "JDK" in the link text.

Because this refers to the Java Development Kit product name, please use "JDK" rather than "jdk" in the link text.

```suggestion
- Install [JDK](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
```
</issue_to_address>

### Comment 6
<location path="README.md" line_range="77" />
<code_context>
+To build the JNI shared library, please follow these steps: 
+- Install [jdk](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) and [cmake](https://cmake.org/download/).  
+- Set the **JAVA_HOME** system environment variable, and add **cmake** to your **PATH**.
+For Windows users, you should install [mingw-w64](https://github.com/skeeto/w64devkit) and add **bin** directory to **PATH**.  
+- For Windows
+```bash
</code_context>
<issue_to_address>
**suggestion (typo):** Tighten the grammar around adding the bin directory to PATH.

Consider: “For Windows users, install [mingw-w64](...) and add the **bin** directory to your **PATH**.” This adds the missing article and clarifies that it’s the user’s PATH.

```suggestion
For Windows users, install [mingw-w64](https://github.com/skeeto/w64devkit) and add the **bin** directory to your **PATH**.  
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

build-jni.sh Outdated
Comment on lines +1 to +3
#!/bin/bash
set -e
cd wrapper-java/src/main
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: 使用相对路径的 cd 会导致脚本在仓库根目录之外运行时变得脆弱

这依赖当前工作目录是仓库根目录,如果在其他位置调用就会出错。建议从脚本所在位置推导路径,比如 cd "$(dirname "$0")/wrapper-java/src/main",这样无论从哪里调用都能正常工作。

Suggested change
#!/bin/bash
set -e
cd wrapper-java/src/main
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/wrapper-java/src/main"
Original comment in English

suggestion: Using a relative cd makes the script fragile when run from outside the repo root

This relies on the current working directory being the repo root, so it breaks when invoked from elsewhere. Prefer deriving the path from the script location, e.g. cd "$(dirname "$0")/wrapper-java/src/main", so it works regardless of where it’s called from.

Suggested change
#!/bin/bash
set -e
cd wrapper-java/src/main
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/wrapper-java/src/main"

build-jni.sh Outdated
else
DYLIB_EXT="so" # Linux
fi
cp build/libquickjs-java-wrapper.$DYLIB_EXT ../../..
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: cp 中未加引号的路径在包含空格时会出问题

如果仓库所在路径中有空格(例如位于 Program Files 下),这个 cp 会失败。请同时给源路径和目标路径加上引号,例如 cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../..",以提高在此类路径下的健壮性。

Suggested change
cp build/libquickjs-java-wrapper.$DYLIB_EXT ../../..
cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."
Original comment in English

suggestion: Unquoted paths in cp can break when the path contains spaces

If the repo is in a path with spaces (e.g. under Program Files), this cp will fail. Please quote both source and destination, e.g. cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../..", to make it robust to such paths.

Suggested change
cp build/libquickjs-java-wrapper.$DYLIB_EXT ../../..
cp "build/libquickjs-java-wrapper.$DYLIB_EXT" "../../.."

@@ -0,0 +1,11 @@
@echo off
cd wrapper-java\src\main
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: 批处理脚本中的相对 cd 和未加引号路径在某些环境下会导致失败

这些命令假定脚本从仓库根目录运行,并且目录路径中没有空格。为了提高健壮性,建议基于脚本所在路径构造路径(例如 cd /d "%~dp0wrapper-java\src\main"),并为所有路径参数加上引号。

Original comment in English

suggestion: Relative cd and unquoted paths in the batch script can cause failures in some environments

These commands assume the script is run from the repo root and that no directories contain spaces. To make it more robust, base paths on the script location (e.g. cd /d "%~dp0wrapper-java\src\main") and quote all path arguments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant