如何中断(用于测试)Java类路径环境变量?

如何中断(用于测试)Java类路径环境变量?,java,classpath,system-variable,Java,Classpath,System Variable,我正在努力理解Java的导入/类路径情况是如何工作的。我想产生一个编译错误,所以我说‘让我试试摆弄Java环境变量’(比如让Java\u HOME变成JAV\u HOME等等) 但这似乎行不通。一切都很好。我使用drJava有关系吗?我甚至尝试重新启动,但没有成功。摆弄JAVA\u HOME不太可能破坏类路径 JAVA_HOME环境变量主要用于告诉您的代码(如果需要知道)和任何第三方工具JAVA安装的位置。Java安装(例如Java和javac工具)并不关注它。当您运行这些命令时,您会隐式地给

我正在努力理解Java的导入/类路径情况是如何工作的。我想产生一个编译错误,所以我说‘让我试试摆弄Java环境变量’(比如让
Java\u HOME
变成
JAV\u HOME
等等)


但这似乎行不通。一切都很好。我使用drJava有关系吗?我甚至尝试重新启动,但没有成功。

摆弄JAVA\u HOME不太可能破坏类路径

JAVA_HOME环境变量主要用于告诉您的代码(如果需要知道)和任何第三方工具JAVA安装的位置。Java安装(例如
Java
javac
工具)并不关注它。当您运行这些命令时,您会隐式地给出安装的位置。。。它是您正在运行的Java工具的祖父母目录

其次,安装中可能找不到的东西(例如“rt.jar”和“tools.jar”文件)实际上位于“引导类路径”上,而不是常规类路径上。引导类路径由相关工具隐式形成。。。除非通过命令行选项等显式覆盖它


现在我不知道drJava是如何管理它的类路径的。它可能会注意CLASSPATH环境变量,但如果它忽略它,我也不会感到惊讶。(IDE通常根据项目结构等以自己的方式管理类路径。)


如果您想这样做,最好从命令行运行
java
javac
。对于这些,类路径由
-jar
选项(以及jar清单中的内容)、
-cp
选项或
类路径
环境变量确定。这在
java
命令的在线手册中有描述。

非常感谢Stephen!