如果将 java_home 和类路径设置为不同的 java 版本会发生什么?
What will happen if set java_home and classpath to different java version?
例如,我有 2 个 java 版本:/usr/jdk8 和 /usr/jdk7。
如果我将 java_home 设置为 jdk8,但在 jdk7 中将类路径设置为 lib,如果我只是 运行 java -xx 命令,实际使用的是哪个版本?
我认为它将是 jdk7,因为将加载 jdk7 中的 rt.jar。
真正让我困惑的是java这个命令本身有什么信息,以及java程序运行s[=的时候它在整个过程中做了什么27=],虽然我可以理解 rt.jar.
中有很多 java 核心代码
搜索问题并不容易,因为我总是会得到 "how to config java_home" 之类的东西。
我希望我清楚地描述了我的困惑。最好有人能给我一些活生生的例子来帮助理解。
谢谢。
类路径不用于查找 Java 运行时库,因此将 Java 运行时 jar 添加到类路径不会产生任何影响。
请参阅 Java 文档:How Classes are Found
说明构成Java平台的类,包括rt.jar
中的类和其他几个重要的jar文件,都是从"bootstrap classpath",这与 "user classpath".
不同
有关更多信息,请阅读 JDK Tools and Utilities,即要了解更多信息,请阅读文档。这是有原因的。
What really confused me is what information the java command itself has, and what it does in the whole process when java program runs
它拥有和需要的唯一信息是它自己的 .exe 位置。
- 它相应地设置了自己的 CLASSPATH
- 它根本没有使用 JAVA_HOME。只有 IDE,Tomcat 等可以做到这一点。
例如,我有 2 个 java 版本:/usr/jdk8 和 /usr/jdk7。
如果我将 java_home 设置为 jdk8,但在 jdk7 中将类路径设置为 lib,如果我只是 运行 java -xx 命令,实际使用的是哪个版本?
我认为它将是 jdk7,因为将加载 jdk7 中的 rt.jar。
真正让我困惑的是java这个命令本身有什么信息,以及java程序运行s[=的时候它在整个过程中做了什么27=],虽然我可以理解 rt.jar.
中有很多 java 核心代码搜索问题并不容易,因为我总是会得到 "how to config java_home" 之类的东西。
我希望我清楚地描述了我的困惑。最好有人能给我一些活生生的例子来帮助理解。
谢谢。
类路径不用于查找 Java 运行时库,因此将 Java 运行时 jar 添加到类路径不会产生任何影响。
请参阅 Java 文档:How Classes are Found
说明构成Java平台的类,包括rt.jar
中的类和其他几个重要的jar文件,都是从"bootstrap classpath",这与 "user classpath".
有关更多信息,请阅读 JDK Tools and Utilities,即要了解更多信息,请阅读文档。这是有原因的。
What really confused me is what information the java command itself has, and what it does in the whole process when java program runs
它拥有和需要的唯一信息是它自己的 .exe 位置。
- 它相应地设置了自己的 CLASSPATH
- 它根本没有使用 JAVA_HOME。只有 IDE,Tomcat 等可以做到这一点。