我有一个简单的程序,在以前的环境中运行良好。我将其移至具有相同操作系统和 Java 版本的新环境中,但在执行类文件时遇到了问题。
我从来没有遇到过在同一目录中运行 java 类的问题,但是当我尝试时却java Class
出现错误could not find or load main class
。
我已经看过所有的建议,其中最流行的建议之一是添加类路径并将其作为运行java -cp . Class
。然而,在我工作过的所有环境中,包括之前与此相同的环境,这从来都不是必要的。为什么会发生这种情况?我该如何修复它?
注意:如果您想知道,java -cp . Class
它适用于没有依赖项的小型测试程序,但会导致没有明确解决方案的 JNI 错误,与 bashrc 类路径和当前目录(指定时-cp .
)上的 jar 文件有关。无论如何,我只想像平常一样执行类。
更新
我确信这是环境问题,但这是代码。我将其称为java Test
,而不是java test
或java Test.class
。
class Test {
public static void main(String[] args) {
System.out.println("Test complete!");
}
}
答案1
您需要先编译 Java 源代码,javac Test.java
然后生成一个名为 Test.class 的新文件,然后再运行它。否则,您将收到此错误消息:Error: Could not find or load main class Test
如下所示。如果您一次运行这些命令,它将显示哪个命令产生了意外结果。
$猫测试.java 类测试{ 公共静态void main(String [] args){ System.out.println("测试完成!"); } } $Java 测试 错误:无法找到或加载主类测试 $javac 测试.java $ls 测试.class 测试.java $Java 测试 测试完成! $java -cp ~/Desktop/ Test # 使用 classpath 进行测试 测试完成!
如您所见,最后一个命令在-cp
classpath 选项后有一个包含测试可执行文件的目录,而不是您在问题中所写的测试文件本身。