我使用Java ASM library编译了一个类(称为 Test.class) 。我决定尝试使用“java”命令运行它,以确保我已经正确编译了该类。
但是,当我这样做时,我收到了“无法找到或加载主类测试”消息。我认为这很奇怪,因为该类位于当前工作目录中(我也尝试将“。”作为类路径传递,但无济于事)。然后我尝试用“javap”对其进行分解,效果很好,这很奇怪,因为如果javap可以找到类文件,那么java肯定也应该能够吗?
这是我的命令行输入和输出:
$ javap -c 测试
Compiled from "Test.ash"
public class Test
{
public Test();
Code:
0: aload_0
1: invokespecial #9 // Method "java.lang.Object"."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: return
}
$ java 测试
错误:无法找到或加载主类测试
$ java 测试类
错误:无法找到或加载主类测试
$ java -cp 。测试
错误:无法找到或加载主类测试
$ java -cp 。测试类
错误:无法找到或加载主类测试
可能出了什么问题?我可能错误地编译了该类,但是javap肯定会像java一样抱怨,并且javap输出看起来是正确的。