2016-09-07 104 views
0

我有02題:Java版本和路徑不匹配

1 - 我嘗試在我的Ubuntu 14.04運行Eclipse的霓虹燈,我得到這個錯誤

enter image description here

我想這個問題鏈接到java版本(Eclipse霓虹燈需要java 8)?

2 - 所以,檢查我的Java版本,採取什麼樣的,我得到

Java的版本

enter image description here

霓虹燈六/etc/profile.d/java.sh

enter image description here

enter image description here

enter image description here

這是我的問題,我設置java_home = java 8但是在PATH中它仍然是java 7 !!!,你在想什麼?我想Java的版本= java的8

感謝

+0

'/ opt/java/jdk1.8.0_20'確實存在嗎? –

+0

yes ➜〜cd /opt/java/jdk1.8.0_20 ➜jdk1.8.0_20 –

回答

0

看來你想要的java.sh會做:設置JAVA_HOME-和PATH環境變量。 你確定它啓動了,當你啓動java?你是否手動啓動它並測試它是否可行?

+0

這是我的pbm,我設置java_home = java 8但是在PATH中它是java 7! –

+0

要麼你沒有執行腳本: export PATH = $ JAVA_HOME/bin:$ PATH 從那時起,你的PATH變量至少應該有兩個,jdk7和jdk8-路徑(因爲你的PATH已經有了jdk7 - 它的路徑,它不會被截斷,如果你不自己做) 或者你沒有設置你的JAVA_HOME的權利。 嘗試手動設置PATH:取出當前PATH,刪除JDK7-Path並手動添加JDK8-Path。 – gsus

+0

@zebiridjallil您運行的腳本可能會在腳本持續時間內覆蓋'JAVA_HOME'。 –

1

看起來在你的Path變量中,對Java 1.7的引用在Java 1.8之前給出。 當您運行java -version時,它會在Path變量中搜索bin目錄,一旦它獲取到引用,它就會返回該版本。嘗試從Path變量中刪除/opt/java/jdk1.7.0_21/bin,我相信它會在那之後起作用。 希望這個答案可以幫助你

+0

我的路徑變量不包含java 1.7 這就是它:PATH =「/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin :/ usr/games:/ usr/local/games「 –

+0

但是它的腳本改變了添加java 1.7的路徑,就像我的java_home添加a.8一樣,但是我不明白 –

+0

我可以在最後一張圖中看到,你在哪裏做了「echo $ PATH」。路徑是/opt/java/jdk1.7。0_21 – yashpandey

0

當你運行這個腳本時,我猜想export cmd只會改變那個shell的PATH,你可能會從另一個shell運行eclipe。同時檢查eclipse版本的eclipse.ini文件。

0

嗯,這裏有很多事情要記住。

首先是...它不管你使用的是什麼java_home,它仍然會首先看你的路徑!你的路徑使用java7!您應該從路徑中移除java硬編碼,並使用路徑中的JAVA_HOME/bin。也許你在修改環境變量時切換用戶? 另外不要忘記在導出PATH之前導出JAVA_HOME!

第二個......你可能有一個全局java系統,但是想用其他的jre運行eclipse。在eclipse.ini中檢查你的-vm設置(通常在/etc/eclipse.ini中)

添加這個eclipse頂部。INI

-vm 
/opt/java/jdk1.8.0_20/bin/java 

From askubuntu(關於爲什麼PATH更新不工作)

有幾個地方,你可以定義$PATH

/etc/environment是一個純文本文件(不是腳本)影響所有 用戶~/.pam_environment - 同樣的事情,但用戶特定的bash也 執行ES一些腳本,可以用於修改$PATH

~/.profile是登錄shell會話執行(不要問我這是什麼意思 :)

~/.bashrc對於非登錄交互式shell執行 會議

/etc/profile/etc/bash.bashrc~/.profile全系統 替代品和~/.bashrc

我在某處閱讀 /etc/environment是定義您的$PATH的推薦位置。所以我通常使用它 。但是您的路徑可能在其他 位置之一中修改。

順便說一句,當你執行與sudo命令,我認爲它通常使用 root用戶的$ PATH(而不是你的非特權用戶 帳戶的$ PATH)。因此,〜/ .pam_environment,~/.profile~/.bashrc/root 目錄中也可能發揮作用。

+0

我的路徑不包含Java硬編碼值,/ etc/environment =

+0

閱讀關於PATH和用戶細節的信息。http://askubuntu.com/questions/409111/export-path-doesnt-work-correctly – MrSimpleMind

+1

我的eclipse正在運行,之後我添加了 -vm /opt /java/jdk1.8.0_20/bin/java 現在沒問題,但是我已經在PATH/JAVA_HOME中獲得了版本msimatch問題 –