簡體   English   中英

javac如何定位Java API類?

[英]How does javac locate the Java API classes?

此頁面上的信息提供了一些很好的提示和一般信息,但沒有結論。

我知道javac.exe基本上只是使用Java從'tools.jar'啟動'sun.tools.javac.Main'。 我也知道Java API類存儲在JDK下的'jre / lib'中的'rt.jar'中。 這是'javac.exe'加載Java API類的地方嗎?

我特別想知道這個場景:假設我安裝了jdk1.6.0_17,后來我安裝了jdk1.6.0_25。 如果我從jdk1.6.0_17運行'javac.exe',它是否會從1.6.0_17或1.6.0_25中的'rt.jar'加載Java API類?

我想知道所有這些的原因是我知道我正在編譯的代碼將在特定的(不是最新的)Java版本上運行,我想使用相同的編譯進行編譯javac版本和Java API以確保兼容性。

將JAVA_HOME環境變量設置為所需的JDK。 還要更改PATH環境變量以包含所需的JDK bin目錄。

默認情況下,類是根據引導程序(rt.jar中的運行時類,i18n.jar中的國際化類,以及其他類)和javac附帶的平台的擴展類編譯的。如果您運行'javac.exe', jdk1.6.0_17,是否會從1.6.0_17中的'rt.jar'加載Java API類,而不是從1.6.0_25加載。

但javac還支持交叉編譯,其中類是針對不同Java平台實現的引導程序和擴展類編譯的。

如果您想使用,請參閱: 交叉編譯

暫無
暫無

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

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