java - 如果将java_home和classpath设置为不同的java版本会发生什么?

标签 java classpath

例如,我有2个java版本:/usr/jdk8和/usr/jdk7。

如果我将java_home设置为jdk8,但将classpath设置为jdk7中的lib,如果我只运行java -xx命令,实际使用的是哪个版本?

我认为它将是jdk7,因为将加载jdk7中的rt.jar。

真正让我困惑的是java命令本身有哪些信息,以及java程序运行的整个过程中做了什么,而我可以理解rt中有很多java核心代码.jar。

搜索问题并不容易,因为我总是会得到“如何配置 java_home”之类的东西。

我希望我清楚地描述了我的困惑。如果有人能给我一些活生生的例子来帮助理解就更好了。

谢谢。

最佳答案

类路径不用于查找 Java 运行时库,因此将 Java 运行时 jar 添加到类路径不会产生任何影响。

请参阅 Java 文档:How Classes are Found

它描述了组成Java平台的类,包括rt.jar中的类和其他几个重要的jar文件,都是从“引导类路径”加载的,这与“用户路径”不同。类路径”。

如需了解更多信息,请阅读 JDK Tools and Utilities ,即要了解更多信息,请阅读文档。它的存在是有原因的。

关于java - 如果将java_home和classpath设置为不同的java版本会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016710/

相关文章:

java - 如何在正在进行的循环中更新 Android Textview?

java - 如何将内部 css (<style>) 添加到 Wicket 页面

java - ant 在 list 末尾添加新行

java - $CLASSPATH 和 -cp 与 Java

java - 从命令提示符执行带有多个类路径库的 jar 文件

java - 如何从 map 中检索值?

java while 循环没有中断

Java/Tesseract-OCR : Unsatisfied LinkError libtesseract302

java - 将外部 JAR 添加到 OpenJDK

java - 是否有清晰的数据库查询代码