簡體   English   中英

java -version告訴我8但jdk是1.7 - OSX 10.9.x

[英]java -version tells me 8 but jdk is 1.7 - OSX 10.9.x

我不明白的東西 - 我在OSX 10.9.5上,當我在終端上運行java -version時,我得到:

java版“1.8.0_40”
Java(TM)SE運行時環境(版本1.8.0_40-b25)
Java HotSpot(TM)64位服務器VM(內置25.40-b25,混合模式)

但在我的/ Library / Java / JavaVirtualMachines / dir中,我看到3個JDK:

  • jdk1.7.0_71.jdk
  • jdk1.7.0_75.jdk
  • jdk1.7.0_76.jdk

Eclipse使用jdk1.7.0_76.jdk。 我記得在Eclipse中為一些個人開發項目安裝Java 7,但我不記得曾經安裝過Java 8.那么為什么java -version說我運行8? 如果該目錄中的Java 8不存在jdk,怎么辦呢?

困惑。 TIA。

您正在質疑的版本實際上是Java Runtime Environment (JRE)版本,而不是Java Developer Kit (JDK)版本; 他們是兩個不同的東西。 您正在運行Java 8( JRE ),但如果有可用的運行時,您可以選擇性地選擇另一個運行時。

如果您想查看當前可能具有的所有Java版本:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    1.8.0_45,             x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
    1.6.0_65-b14-466.1,   x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1,     i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

要查看當前正在運行的默認值:

$ which java ; java -version
/usr/bin/java
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

要查看安裝了哪些JDKs

$ ls /Library/Java/JavaVirtualMachines/
jdk1.8.0_45.jdk

Java運行時環境(JRE)

JRE允許您運行用Java編程語言編寫的應用程序。 與JDK一樣,它包含Java虛擬機(JVM),包含Java平台API的類和支持文件。 與JDK不同,它不包含編譯器和調試器等開發工具。

Java開發工具包(JDK)

JDK是一個使用Java編程語言構建應用程序,applet和組件的開發環境。 JDK包括用於開發和測試用Java編程語言編寫並在Java平台上運行的程序的工具。

由於Eclipse依賴於JDK的工具,因此它們肯定會使用您安裝的JDKs ,因為它無法僅使用JRE

在你.path_profile文件夾中導出JAVA_HOME到你的JDK8文件夾,java -version是你JVN的結果,因為在我看來你把java_home還指向JDK1.7做了以下

$ vim .bash_profile 

export JAVA_HOME=YOUR_JDK8_PATH 

$ source .bash_profile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM