2017-01-09 76 views
1

我在問自己,如果JRE來自不同的操作系統(例如:Windows,Linux,Mac等),都是不同的和平臺相關的?我問這個問題的原因是因爲如果Java Bytecode與平臺無關,那意味着某個操作系統的JRE必須實現相同的字節碼,這與操作系統有點不同?提前致謝。不同的OS JRE有什麼不同?

+0

Java是平臺獨立的,因爲許多平臺都有依賴於平臺的編譯器/解釋器。它是獨立於平臺的,因爲我們不必將代碼更改爲在不同的平臺上運行,但是我們必須使用平臺特定的JRE版本來運行程序。 – 11thdimension

+1

這幾乎是圍繞Java的核心概念--JRE是平臺特定的,字節碼不是。 – stdunbar

+0

雖然字節碼不依賴於操作系統,但Java虛擬機是。 –

回答

4

Java運行時環境(JRE)依賴於平臺;儘管它們運行的​​是相同的Java字節碼。

+0

沒錯。從本質上講,JRE的目的是爲了使Java本身獨立於平臺(至少儘可能)。 –

1

的JRE中都是平臺和體系結構相關的,但所有平臺之間的字節碼和JVM功能相同(還有架構x86和x64之間的差異)

1

JRE是Java運行時Environment.It的縮寫用於提供運行時環境,它提供了JVM +庫(jvm需要這些庫)以及運行用Java編寫的applet和應用程序的其他組件。

Java虛擬機(JVM)是​​運行Java字節碼的虛擬機。 JVM不理解Java源代碼,這就是爲什麼編譯* .java文件以獲取包含JVM可理解的字節碼的* .class文件的原因。所以你只需編寫一次代碼(生成.class文件)並在不同的JVM上運行它。有不同系統的JVM的具體實現(Windows,Linux ..)。 JVM負責完成這些任務加載類,驗證代碼,執行代碼和提供運行時環境。

還有一個名爲JDK的術語,它由JRE +開發工具組成。