如何在Windows上使用Ubuntu的Windows JDK构建Gradle项目?

Sho*_*orn 6 java windows bash gradle windows-subsystem-for-linux

我的Windows 10计算机最近强行将我升级到Windows的新“ Creators Update”版本,“关于您的PC”小部件现在将我的操作系统版本报告为“ 1703”。

我以为在Windows上使用Linux / Ubuntu的Windows子系统来编译Gradle项目时会遇到困难。

我在安装了Windows JDK c:\jvm\jdk1.8.0_102

在我的MinGW终端窗口(“ git bash”)中,我可以设置JAVA_HOME并从源目录执行gradle wrapper脚本,它将可以正常工作:

export JAVA_HOME=/c/jvm/jdk1.8.0_102
./gradlew tasks
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何用WSL做等效的事情。打开“ Windows上的Ubuntu上的Bash”终端,切换到我的源目录并调用以下命令:

export JAVA_HOME=/mnt/c/jvm/jdk1.8.0_102
./gradlew tasks
Run Code Online (Sandbox Code Playgroud)

结果如下:

ERROR: JAVA_HOME is set to an invalid directory: /mnt/c/jvm/jdk1.8.0_102

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Run Code Online (Sandbox Code Playgroud)

请注意,Windows JDK在bash终端中运行良好。$JAVA_HOME/bin/java.exe -version在Ubuntu终端中执行可以正常工作。

问题是

有什么方法可以使用我先前安装的Windows JDK从“ Windows上的Ubuntu上的Bash”终端运行gradlew脚本。

请注意

我特别在问是否可以使用Windows JDK运行我的Gradle脚本,而不是使用WSL安装的Ubuntu / Linux JDK。我知道我可以通过在Windows Sunbsystem for Linux中安装Linux JDK来运行gradle wrapper脚本,但是我试图弄清楚是否可以使用Windows JDK运行我的构建。

Sho*_*orn 2

当您从 WSL 内部启动时./gradlew,它会尝试从 Java 安装运行 Java 二进制文件$JAVA_HOME。它是什么样的安装?它包含 Windows 二进制文件还是 Linux 二进制文件?

如果问题简化为:“如何从 WSL 运行 Windows 二进制文件”。

那么答案是:“你不能——这不受支持”。