类路径不默认为当前目录[英] classpath does not default to current directory

问题描述

我用 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 版.

推荐答案

我希望已经设置了一个 CLASSPATH 环境变量.运行 echo $CLASSPATH 以查看它的设置.

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

  • 如果有 -cp,则指定类路径
  • 否则,如果在环境中设置了 CLASSPATH,则指定类路径
  • 否则默认类路径为"."已使用.

本文地址:https://www.itbaoku.cn/post/978560.html