java - javac 如何定位 Java API 类?

标签 java javac

关于this page的信息提供了一些很好的提示和一般信息,但没有定论。

我知道 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 以确保兼容性。

最佳答案

默认情况下,类是针对 Bootstrap (rt.jar 中的运行时类、i18n.jar 中的国际化类等)和 javac 附带的平台扩展类编译的。来自 jdk1.6.0_17 的 exe',它会从 1.6.0_17 中的 'rt.jar' 加载 Java API 类,而不是从 1.6.0_25 中加载。

但 javac 还支持交叉编译,其中类是针对不同 Java 平台实现的 Bootstrap 和扩展类进行编译的。

查看更多信息:Cross Compilation如果你想使用

关于java - javac 如何定位 Java API 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958019/

相关文章:

java - 希望使用 Java 创建随机数组

java - 相当于DefaultTableModel中JTable的getSelected列方法

java - OpenMPI:包 mpi 不存在

Java 类 : Anonymous vs Nested vs Private

Java 8 不兼容的类型

java - Apache POI - 读取由 TEXT() 公式格式化的单元格

java - Solr 管理页面未加载

java - Java中的编码问题

java - 无法使用外部 jar 文件在远程命令行中运行 java

java - Maven和JVM的关系