![](/img/trans.png)
[英]Do different Java Compilers (where the vendor is different) produce different bytecode
[英]Do Linux and Windows java compilers produce the same or different class files?
我們在Linux和Windows上使用相同版本的1.6.0_25進行Java編譯。
由於某種原因,結果類文件是不同的。 這是對的嗎?
java編譯器不具有確定性,如果在同一平台上編譯多次或在不同平台上編譯,則可能不會生成相同的.class。 我試圖找出java編譯器的內部,看看為什么它不是確定性的。
在學習javac中的交叉編譯選項時,進一步搜索可以提供更多洞察力:
交叉編譯選項
默認情況下,類是根據javac附帶的平台的引導程序和擴展類編譯的 。 但javac還支持交叉編譯,其中類是針對不同Java平台實現的引導程序和擴展類編譯的。 交叉編譯時使用-bootclasspath和-extdirs非常重要; 請參閱下面的交叉編譯示例。
Java字節碼與平台無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.