2012-02-24 94 views
1

http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html爲什麼java JDK爲所有操作系統提供選項?

我們知道,Java是一個平臺獨立的語言那麼爲什麼這個網站,如Linux,Windows中的Solaris操作系統都提供的JDK?

那麼我們爲什麼告訴java是平臺無關

+10

因爲JVM不是平臺獨立的! – 2012-02-24 13:12:46

+0

因爲JVM沒有在JAVA中實現,但可能大部分是C/C++ – Rekin 2012-02-24 13:15:05

+1

爲什麼所有的downvotes?這真的是我見過的最荒謬的論壇。有人只是在問一個問題,他們不知道。爲什麼要讓每個人都只是問一個問題,如果這個問題是非常基本的? – 2012-02-24 13:23:34

回答

4

它是這樣的:

 your application   
    ---------------------  
      JAVA on OS1   
    --------------------- 
      OS1 
    --------------------- 
     hardware 
    --------------------- 

,如果你寫你對Java之上的應用程序,那麼你可以將你的java 應用程序按原樣,不改變它,甚至編譯,新OS,因爲 你的程序是寫在一個平臺上的,而不是本地操作系統。

因此,您需要爲您的操作系統下載特定的Java。但從應用角度來看,它是一樣的API。 Java使你的應用程序平臺獨立,因爲它隱藏了你的應用程序的操作系統。但是Java本身必須針對每個特定的操作系統進行編譯和構建。但應用程序不關心這一點。應用程序看到相同的API。這是整個觀點。

+0

+1不錯的解釋 – 2012-02-24 13:29:46

1

要簡單地解釋你,當你從一個OS移動你的代碼到另一個OS時,你不需要編譯你的java源代碼,但是爲了運行你編譯的java代碼,你需要有特定於操作系統的Java運行時計算機。這就是爲什麼你對不同的操作系統有不同的JDK。

4

因爲在那裏您下載Java虛擬機的安裝程序。這是運行Java應用程序的環境。

Java與操作系統無關的原因是因爲它運行在此JVM中。

+0

「vor」,「Maschine」,「Applikation」... [原文如此...您正在使用的語言是「Germanglish」還是什麼!? ; ) – TacticalCoder 2012-02-24 13:18:24

+0

我更喜歡稱之爲「Denglish」:)。無論如何,我對這些錯別字感到抱歉。 – TooR 2012-02-24 13:26:24

+1

不用擔心:我是一個法語母語的人,偶爾也會做一些很好的「frenglish」拼寫錯誤; ) – TacticalCoder 2012-02-24 15:11:51

2

JVM的工作是隱藏平臺之間的差異,併爲應用程序代碼提供相同的執行環境,而不管平臺如何。

JVM用C++編寫,並被編譯爲本地二進制文件,就像任何其他C++應用程序一樣。 (畢竟,你不會期望一個.exe文件在Linux上運行)。

因此,JVM是平臺特定的,但它提供的環境不是。

1

要添加到其他答案中,Java是合格的平臺,因爲您編寫的代碼應該適用於每個平臺。事實並非如此。 Java代碼總是以相同的方式在字節碼中編譯,但JVM在OS的函數中以不同方式解釋這個常見字節碼,每個OS有一個JVM。沒有JVM實現來使用字節碼的OS不能支持Java。

相關問題