我的Windows 10机器最近强行将我升级到新的“Creators Update”版本的Windows,“About your PC”小部件现在报告我的操作系统版本为“1703”。
我想我会在Windows上使用Linux/Ubuntu的Windows子系统来编译我的Gradle项目。
我在c:\jvm\jdk1.8.0_102
上安装了Windows JDK。
在MinGW终端窗口("git bash")中,我可以设置一个JAVA_HOME并从源目录执行gradle Package 器脚本,它就可以工作了:
export JAVA_HOME=/c/jvm/jdk1.8.0_102
./gradlew tasks
但是我不知道如何用WSL做一个等价的事情。打开“Bash on Ubuntu on Windows”终端,切换到我的源目录并调用以下命令:
export JAVA_HOME=/mnt/c/jvm/jdk1.8.0_102
./gradlew tasks
结果如下:
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.
请注意,Windows JDK在bash终端中运行良好。在Ubuntu终端中执行$JAVA_HOME/bin/java.exe -version
可以正常工作。
- 问题是**:
有没有什么方法可以使用我之前安装的WindowsJDK从“Bash on Ubuntu on Windows”终端运行我的gradlew脚本?
- 请注意 *:
我特别想问的是,是否有可能让我的Gradle脚本使用Windows JDK运行,而不是使用WSL安装的Ubuntu/Linux JDK。我知道我可能可以通过在Windows Sunbsystem for Linux中安装Linux JDK来运行我的gradle Package 器脚本,但我试图弄清楚是否有可能使用Windows JDK运行我的构建。
3条答案
按热度按时间monwx1rj1#
为了确保我没有错过任何明显的东西,我下载了Windows和Linux的Android Studio(其中包含JDK,或者更确切地说,用于构建Android项目的最小Java工具集),并将它们安装到两个不同的目录:
C:\Program Files\Android\Android Studio
的Windows版本和~/android-studio
的Linux版本。在WSL中,我首先将
JAVA_HOME
设置为C:\Program Files\Android\Android Studio\jre
,然后运行gradlew
。它给了我invalid directory
错误消息。接下来,我将
JAVA_HOME
设置为~/android-studio/jre
。一切都如预期的那样工作。然后我将Android Studio for Windows复制到
~/android-studio-windows
,并将JAVA_HOME
设置为~/android-studio-windows/jre
。它给了我相同的invalid directory
错误信息,所以我认为WSL不能像现在那样使用Windows工具(好吧,至少目前不能)。所以,如果你的目标是在WSL中使用gradle,我认为你需要在WSL中安装OpenJDK for Linux(或类似的东西)。
zwghvu4y2#
如果您使用的是WSL,并且希望从WSL终端运行gradlew,则可以按照以下步骤操作:
我使用的是Windows版本:
mnemlml83#
当您从WSL内部启动
./gradlew
时,它会尝试从$JAVA_HOME
Java安装运行Java二进制文件。这是什么样的安装?它包含Windows二进制还是Linux二进制?如果问题简化为:如何从WSL运行Windows二进制文件。
那么答案是:“你不能-这是不支持的”。