gpt4 book ai didi

Java找不到类文件,而javap可以

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:40 24 4
gpt4 key购买 nike

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

但是,当我这样做时,我收到了“无法找到或加载主类测试”消息。我认为这很奇怪,因为该类位于当前工作目录中(我也曾尝试将“.”作为类路径传递,但无济于事)。然后我尝试用“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
}

$ java Test

Error: Could not find or load main class Test

$ java Test.class

Error: Could not find or load main class Test

$ java -cp . Test

Error: Could not find or load main class Test

$ java -cp . Test.class

Error: Could not find or load main class Test

可能出了什么问题?我可能会错误地编译该类,但是 javap 肯定会像 java 一样提示并且 javap 输出看起来是正确的。

最佳答案

我发现了问题,我没有用斜线替换类的父类(super class)限定名中的点。

因此该类具有“java.lang.Object”的父类(super class),而不是“java/lang/Object”,这是必需的。

关于Java找不到类文件,而javap可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com