我在Windows 10上,在Windows上使用Ubuntu上的Bash。 我想用ionic build android
,但它给了我下面的错误:java版本无法识别
我实际安装JDK 1.8.0_121并设置JAVA_HOME
及其PATH
如下我~/.bash_profile
:
export JAVA_HOME=/mnt/c/"Program Files"/Java/jdk1.8.0_121
export PATH=${PATH}:/mnt/c/"Program Files"/Java/jdk1.8.0_121/bin
当我使用java -version
时,会发生以下输出:
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)
因此Bash不能识别我的Java版本。有趣的是,这java.exe -version
提供了正确的输出:
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
我使用的是Windows' CMD>java -version
时得到相同的(正确)的输出。
在/Windows/System32
或/syswow64
中没有任何java文件。
我想我安装了“openjdk版本9”,这是因为java -version
直接通过apt install openjdk-9-jdk-headless
有一天显示。这可能会导致这种麻烦吗?因为当我尝试update-alternatives --config java
我得到以下的输出:(没有选项来选择jdk1.8.0_121)
还是我必须设置JAVA_HOME
及其以不同的方式PATH
?或者你有什么其他解决方案?
(对不起,对于双重发布...)如您所说,echo $ PATH现在首先显示jdk1.8方向。不幸的是'java -version'再次导致openjdk9。'哪个java'仍然给/ usr/bin/java回来。你有什么其他的建议? –
我更新了答案 – 2017-04-18 10:42:27
我试了两个别名。第一个错误的语法,我想。我必须在第二个末尾添加“.exe”。之后'java -version'返回了正确的版本。然后我再次尝试'离子模拟android',它返回与我的问题(“错误:要求检查失败,JDK 1.8或更高版本”)相同的错误。之后,在使用别名的同时,'which java'命令仍然像以前一样以exactely的形式返回'/ usr/bin/java'。这个目录似乎是Ubuntu子系统的一部分。你能想出一个解决方案吗?还是你有其他想法? –