在包中运行 Java 类 --> 错误:无法找到或加载主类

在包中运行 Java 类 --> 错误:无法找到或加载主类

我正在学习如何使用命令 javac 和 java 在终端中编译和运行 Java 类。我可以毫无问题地编译和运行单个类,但是,当我将该类放入包中并尝试运行它时,我收到“错误:无法找到或加载主类(类名)”。

目前,我的目录结构是:~/Desktop/OCA_Practice/cert我正在运行的文件的名称为Test.java,我已将其放置在名为 的包中cert。这是我的非常基础的课程:

package cert;
public class Test {
    public static void main(String args[]) {
        System.out.println("This is a test.");
    }
}

当我在 cert 目录中运行命令时javac Test.java,该类编译成功,但是,当我尝试java Test编译后运行时,就会出现错误。当我尝试运行程序时,除了类之外,我还尝试运行我的文件夹结构,如java Desktop.OCA_Practice.cert.Test和 所示,但这不起作用。我已将类中的包声明更改为,Desktop.OCA_Practice_Probs.cert但这也不起作用。

我尝试了多种不同的方法但没有成功。我在类文件中写错了包名称吗?我运行了命令:java -version它显示我正在运行,java version "1.8.0_25"所以我很确定我的类路径设置正确。

预先感谢您的任何回复。

答案1

当您在 Java 中运行类时,您需要提供完整的包名称和类名称,并位于正确的位置以匹配文件夹和文件名。

因此,就您的情况而言,package cert;请像最初一样在类中声明、构建它,然后按如下方式运行它:

cd ~/Desktop/OCA_Practice
java cert.Test

答案2

要运行包中的类,请始终从包的父目录运行该类。
在您的情况下,使用命令更改目录 OCA_Practice 中的打开终端:
cd ~/桌面/OCA_Practice
然后使用java后面的包名通过命令运行类文件:
java 证书测试

相关内容