我有一些需要转换成 .java 的 .class 文件,于是我执行了以下操作:
javap -c ClassName.class
而且我一直都在遇到相同的错误
ERROR:Could not find ClassName.class
你们有什么想法,可能是什么原因呢?我查了javap的手册,就我所知道的来说,语法是正确的。如果有其他方法将其转换为.java文件,我非常愿意尝试。
我有一些需要转换成 .java 的 .class 文件,于是我执行了以下操作:
javap -c ClassName.class
而且我一直都在遇到相同的错误
ERROR:Could not find ClassName.class
你们有什么想法,可能是什么原因呢?我查了javap的手册,就我所知道的来说,语法是正确的。如果有其他方法将其转换为.java文件,我非常愿意尝试。
javap
读取字节码javap
命令需要的是类名而不是带有 .class
扩展名的文件名。请尝试:
javap -c ClassName
javap
可以显示出 java 方法的实现,但它只能展示 JVM 字节码格式,无法还原为 java 语法。
如果你需要实际上进行反编译(即逆转 javac
)你需要使用一个合适的反编译工具。可以参考以下相关问题:
javap
接受没有 .class
扩展名的参数。(如果您提供了 .class
扩展名,它将产生精确的错误消息。)(实际上,只要它能在当前目录中找到 .class
文件,它就接受非完全限定的类名。) - aioobe我使用了http://www.javadecompilers.com,但在某些类中它会显示“无法加载此类...”的消息。
相反地,可以下载Android Studio,导航到包含Java类文件的文件夹并双击它。代码将显示在右侧窗格中,您可以从那里复制它并将其保存为Java文件。
这是针对Mac用户的:
首先,您必须澄清类文件的位置...因此例如,在“Terminal”(Mac应用程序)中,您将键入:
cd
然后无论您的文件在哪里,例如:
cd /Users/CollarBlast/Desktop/JavaFiles/
然后你会按回车键。之后,你将执行命令。 例如:
cd /Users/CollarBlast/Desktop/JavaFiles/
(然后我将按回车键...)
然后我会输入命令:
javap -c JavaTestClassFile.class
(然后我将再次按回车键...)
希望这样能够正常工作!