我有一个目录结构“D:\workspace 2\project\lib”,其中包含所有文件“AgentMain.java”(我从 src 复制并放置在这里以使其更容易)、“asm-all .3.3.jar", "myagent.jar".现在,当我尝试从命令提示符调用我的 java 程序时
D:\workspace 2\project\lib>java -javaagent:myagent.jar -cp asm-all-3.3.jar;. AgentMain.java
它在线程主 java.lang.NoclassDefFoundError AgentMain/java 中给了我异常,并说找不到主类 AgentMain.java
这里有什么问题吗?
最佳答案
您正在尝试执行源文件 (AgentMain.java) 而不是类。确保您已使用 javac 编译 AgentMain,然后删除 .java
文件扩展名。
更新基于评论的讨论: 由于您的 AgentMain 类在编译类后定义在名为“main”的包中,因此其对应的类文件必须位于名为“main”的目录中。
因此,如果您使用包含的命令从“d:\workspace 2\project\lib”目录运行,编译的类需要位于 d:\workspace 2\project\lib\main\AgentMain 中。类
关于未找到 java 代理类异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169597/