如果将java_home和classpath设置为不同的java版本,会发生什么?
例如,我有两个java版本:/usr/jdk8和/usr/jdk7 如果我将java_home设置为jdk8,但在jdk7中将classpath设置为lib,那么如果我只运行java-xx命令,哪个版本将被实际使用 我认为它将是jdk7,因为jdk7中的rt.jar将被加载 真正让我困惑的是java命令本身有什么信息,以及它在java程序运行的整个过程中做了什么,而我可以理解rt.jar中有很多java核心代码 搜索这个问题并不容易,因为我总是会得到“如何配置java_主页”之类的东西 我希望我能清楚地描述我的困惑。如果有人能给我一些活生生的例子来帮助我理解,那就更好了如果将java_home和classpath设置为不同的java版本,会发生什么?,java,classpath,Java,Classpath,例如,我有两个java版本:/usr/jdk8和/usr/jdk7 如果我将java_home设置为jdk8,但在jdk7中将classpath设置为lib,那么如果我只运行java-xx命令,哪个版本将被实际使用 我认为它将是jdk7,因为jdk7中的rt.jar将被加载 真正让我困惑的是java命令本身有什么信息,以及它在java程序运行的整个过程中做了什么,而我可以理解rt.jar中有很多java核心代码 搜索这个问题并不容易,因为我总是会得到“如何配置java_主页”之类的东西 我希望我
谢谢。类路径不用于查找Java运行时库,因此将Java运行时JAR添加到类路径不会产生任何影响 请参阅Java文档: 它描述了组成Java平台的类,包括
rt.jar
中的类和其他几个重要的jar文件,是从“引导类路径”加载的,这与“用户类路径”不同
有关更多信息,请阅读更多信息,即,要了解更多信息,请阅读文档。这是有原因的
真正让我困惑的是java命令本身有什么信息,以及它在java程序运行的整个过程中做了什么
它拥有和需要的唯一信息是它自己的.exe位置
- 它相应地设置自己的类路径
- 它根本没有使用JAVA_HOME。只有IDE、Tomcat等可以这样做
java
命令将“用户类路径”设置为当前目录,但如果给定,将使用指定的类路径,使用-cp
命令行选项或classpath
环境变量。