如何使用 BashOnWindows10 中的 Java Windows 安装?

如何使用 BashOnWindows10 中的 Java Windows 安装?

我无法从 BashOnWindows10 运行 Windows 版本的 java.exe。它存在于 PATH 中,但调用失败且无任何提示。我的目标是避免在 WSL 中再次安装 JDK/JRE。当我运行 Creator 更新时,我原本希望能够调用任何 Windows 应用程序。知道为什么会发生这种情况吗?但是我能够成功启动 Python 的 Windows 安装。

狂欢

username@PC:~$ which java.exe
/mnt/c/ProgramData/Oracle/Java/javapath/java.exe

username@PC:~$ java.exe
username@PC:~$         <<<nothing happens

username@PC:~$ which python.exe
/mnt/c/Python34/python.exe

username@PC:~$ python.exe
Unable to translate current working directory. Using C:\WINDOWS\system32
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit 
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

命令执行程序

C:\Users\username>java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

答案1

以下是我如何让 Java 在 WSL 安装中“正常工作”。

ln -s /mnt/c/Program\ Files\ \(x86\)/Java/jre1.8.0_151/bin/java.exe /bin/java

这样做的目的是在您的/bin文件夹中创建一个指向 Windows Java 二进制文件的符号链接。每当 WSL 尝试调用 Java 时,它都会重定向到 Windows 版本。随着 Java 版本将来的变化,您可能需要调整路径。

答案2

此问题是因为 WSL 不支持 Creator 更新中的 Windows 快捷方式。/mnt/c/ProgramData/Oracle/Java/javapath/java.exe实际上是指向实际安装目录的快捷方式,C:\Program Files\Java\jre1.8.0_31\bin在我的情况下是这样的。从实际安装路径调用 java 似乎可以按预期工作。

该问题已在内部版本 16193

答案3

如果您想在 Linux 子系统内执行 java.exe,您可以按照以下答案操作: https://stackoverflow.com/a/54151117/2751561

如果您想要反过来,您可以像这样在 cmd 上调用 java bin:

wsl java -version

相关内容