小编典典

classpath不默认为当前目录

java

我用Java编写并编译了一个简单的Hello World程序,但是当我尝试运行该程序时,却收到了错误消息Error: Could not find or load main class 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。


阅读 176

收藏
2020-11-23

共1个答案

小编典典

我希望CLASSPATH已经设置了环境变量。运行echo $CLASSPATH以查看其设置。

如果您不使用该-jar选项,则:

  • 如果存在,则-cp指定类路径
  • 否则,如果CLASSPATH在环境中设置,则指定类路径
  • 否则,默认的类路径为“。” 用来。
2020-11-23