http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html爲什麼java JDK爲所有操作系統提供選項?
我們知道,Java是一個平臺獨立的語言那麼爲什麼這個網站,如Linux,Windows中的Solaris操作系統都提供的JDK?
那麼我們爲什麼告訴java是平臺無關?
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html爲什麼java JDK爲所有操作系統提供選項?
我們知道,Java是一個平臺獨立的語言那麼爲什麼這個網站,如Linux,Windows中的Solaris操作系統都提供的JDK?
那麼我們爲什麼告訴java是平臺無關?
它是這樣的:
your application
---------------------
JAVA on OS1
---------------------
OS1
---------------------
hardware
---------------------
,如果你寫你對Java之上的應用程序,那麼你可以將你的java 應用程序按原樣,不改變它,甚至編譯,新OS,因爲 你的程序是寫在一個平臺上的,而不是本地操作系統。
因此,您需要爲您的操作系統下載特定的Java。但從應用角度來看,它是一樣的API。 Java使你的應用程序平臺獨立,因爲它隱藏了你的應用程序的操作系統。但是Java本身必須針對每個特定的操作系統進行編譯和構建。但應用程序不關心這一點。應用程序看到相同的API。這是整個觀點。
+1不錯的解釋 – 2012-02-24 13:29:46
要簡單地解釋你,當你從一個OS移動你的代碼到另一個OS時,你不需要編譯你的java源代碼,但是爲了運行你編譯的java代碼,你需要有特定於操作系統的Java運行時計算機。這就是爲什麼你對不同的操作系統有不同的JDK。
因爲在那裏您下載Java虛擬機的安裝程序。這是運行Java應用程序的環境。
Java與操作系統無關的原因是因爲它運行在此JVM中。
「vor」,「Maschine」,「Applikation」... [原文如此...您正在使用的語言是「Germanglish」還是什麼!? ; ) – TacticalCoder 2012-02-24 13:18:24
我更喜歡稱之爲「Denglish」:)。無論如何,我對這些錯別字感到抱歉。 – TooR 2012-02-24 13:26:24
不用擔心:我是一個法語母語的人,偶爾也會做一些很好的「frenglish」拼寫錯誤; ) – TacticalCoder 2012-02-24 15:11:51
JVM的工作是隱藏平臺之間的差異,併爲應用程序代碼提供相同的執行環境,而不管平臺如何。
JVM用C++編寫,並被編譯爲本地二進制文件,就像任何其他C++應用程序一樣。 (畢竟,你不會期望一個.exe文件在Linux上運行)。
因此,JVM是平臺特定的,但它提供的環境不是。
要添加到其他答案中,Java是合格的平臺,因爲您編寫的代碼應該適用於每個平臺。事實並非如此。 Java代碼總是以相同的方式在字節碼中編譯,但JVM在OS的函數中以不同方式解釋這個常見字節碼,每個OS有一個JVM。沒有JVM實現來使用字節碼的OS不能支持Java。
因爲JVM不是平臺獨立的! – 2012-02-24 13:12:46
因爲JVM沒有在JAVA中實現,但可能大部分是C/C++ – Rekin 2012-02-24 13:15:05
爲什麼所有的downvotes?這真的是我見過的最荒謬的論壇。有人只是在問一個問題,他們不知道。爲什麼要讓每個人都只是問一個問題,如果這個問題是非常基本的? – 2012-02-24 13:23:34