我正在努力了解 Java 的导入/类路径情况是如何工作的。我想产生一个编译错误,所以我说'让我尝试摆弄 Java 环境变量'(比如 make JAVA_HOME
becomeJAV_HOM
等)。
但它似乎不起作用。一切都编译得很好。我使用 drJava 重要吗?我什至尝试重新启动,但没有这样做。
我正在努力了解 Java 的导入/类路径情况是如何工作的。我想产生一个编译错误,所以我说'让我尝试摆弄 Java 环境变量'(比如 make JAVA_HOME
becomeJAV_HOM
等)。
但它似乎不起作用。一切都编译得很好。我使用 drJava 重要吗?我什至尝试重新启动,但没有这样做。
摆弄 JAVA_HOME 不太可能破坏类路径。
JAVA_HOME 环境变量主要用于告诉您的代码(如果需要知道)和 Java 安装所在的任何 3rd 方工具。Java 安装(例如java
和javac
工具)不关心它。当您运行这些命令时,您隐含地给出了安装的位置……它是您正在运行的 Java 工具的祖父目录。
其次,安装中可能找不到的东西(例如“rt.jar”和“tools.jar”文件)实际上位于“引导类路径”而不是常规类路径中。引导类路径由相关工具隐式形成……除非您通过命令行选项等显式覆盖它。
现在我不知道 drJava 是如何管理它的类路径的。它可能会注意 CLASSPATH 环境变量,但如果它忽略它,我不会感到惊讶。(IDE 通常根据项目结构等以自己的方式管理类路径。)
如果您想进行这样的实验,最好java
从命令行javac
运行。对于这些,类路径由-jar
选项(以及 JAR 清单中的内容)、-cp
选项或CLASSPATH
环境变量确定。该java
命令的在线手册中对此进行了描述。