我在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子系統的一部分。你能想出一個解決方案嗎?還是你有其他想法? –