[英]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.