classpath不默认为当前目录
我用Java编写并编译了一个简单的Hello World程序但是当我尝试运行它时,我遇到了错误消息Error: Could not find or load main class Hello
。 它只是在我执行命令java -cp . Hello
java -cp . Hello
,它成功运行了。
奇怪的是,当前目录似乎已经成为类路径的一部分。 剧本
class CheckClassPath{ public static void main(String args[]){ System.out.println(System.getProperty("java.class.path")); } }
打印.
,虽然我再次必须显式设置classpath
选项。
有谁知道为什么会这样? 我使用的是Ubuntu 16.04和open-JDK 1.8版。
我希望已经设置了CLASSPATH
环境变量。 运行echo $CLASSPATH
以查看它的设置。
如果您不使用-jar
选项,则:
- 如果有
-cp
,则指定类路径 - 否则,如果在环境中设置了
CLASSPATH
,则指定类路径 - 否则默认类路径为“。” 用来。