![在包中运行 Java 类 --> 错误:无法找到或加载主类](https://linux22.com/image/47778/%E5%9C%A8%E5%8C%85%E4%B8%AD%E8%BF%90%E8%A1%8C%20Java%20%E7%B1%BB%20--%3E%20%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E6%89%BE%E5%88%B0%E6%88%96%E5%8A%A0%E8%BD%BD%E4%B8%BB%E7%B1%BB.png)
我正在学习如何使用命令 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 证书测试