Java无法找到类文件,而javap可以



我使用Java ASM库编译了一个类(称为Test.class)。我决定尝试使用"java"命令运行这个类,以确保我已经正确编译了这个类。

然而,当我这样做时,我得到了"无法找到或加载主类Test"消息。我认为这很奇怪,因为类在当前工作目录内(我也尝试过传递"。"作为类路径,但无济于事)。然后我尝试用"javap"反汇编它,它工作得很好,这很奇怪,因为如果javap可以找到类文件,那么肯定java也应该能够?

以下是我的命令行输入和输出:
$ javap -c Test
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
}

错误:无法找到或加载主类Test

错误:无法找到或加载主类Test

$ Java -cp。测试

错误:无法找到或加载主类Test

$ Java -cp。Test.class

错误:无法找到或加载主类Test

出了什么问题?我可以不正确地编译类,但可以肯定的是,javap会抱怨,以及javajavap输出看起来是正确的。

我发现了问题,我没有用斜杠替换类的超类限定名中的点。

所以这个类有一个超类"java.lang "。

相关内容

  • 没有找到相关文章

最新更新