我有一些.class文件,我需要转换为.java,所以我做了:
javap -c ClassName.class
并且我一直有同样的错误
错误:找不到ClassName.class
你们有什么可能的原因吗?我做了man javap,据我所知,语法是正确的。如果有另一种方法将其转换为.java文件,我非常愿意尝试。非常感谢任何想法?
答案 0 :(得分:34)
javap
读取字节码 javap
命令采用不带.class
扩展名的类名。尝试
javap -c ClassName
javap
不会为您提供java语法中方法的实现。它最多只能以JVM字节码格式提供给你。
要实际反编译(即,执行javac
的反向),您将必须使用适当的反编译器。例如,参见以下相关问题:
答案 1 :(得分:1)
我猜测类名是错误的 - 请确保使用完全解析的类名,包含所有包 - 或者它不在CLASSPATH中,因此javap无法找到它。
答案 2 :(得分:0)
这适用于Mac用户:
首先,您必须澄清类文件的位置...例如,在“终端”(Mac应用程序)中,您可以键入:
cd
然后你提交的地方就是:
cd /Users/CollarBlast/Desktop/JavaFiles/
然后你会点击回车。之后你会做命令。
e.g:
cd /Users/CollarBlast/Desktop/JavaFiles/
(然后我会按回车键输入......)
然后我会输入命令:
javap -c JavaTestClassFile.class
(然后我会再次按回车进入...)
希望它能起作用!
答案 3 :(得分:0)
我使用了http://www.javadecompilers.com,但是在某些类中,它会给您消息“无法加载此类...”
INSTEAD下载Android Studio,导航到包含Java类文件的文件夹,然后双击它。该代码将显示在右窗格中,我想您可以将其复制并从那里另存为Java文件