我看到一些java反编译器可以将字节码反编译成可读的java源代码,我想知道来自java(不是其他JVM语言)的所有字节码是否可以再次反编译为java源代码?
更新
对不起,让我更清楚地提出问题.
刚谈谈JVM上的普通Java代码(没有Android,没有字节码增强,没有AOP,没有混淆),我实际上希望字节码可以被反编译.但是我不知道是否有编译成字节码的java代码形式,永远不能被反编译成可读的java源代码.
我有一个.jar文件,当我提取它时,它给了我该jar文件中存在的所有.class文件.
我使用http://jd.benow.ca/工具反编译了所有的.class文件,但我希望所有.class文件都保存到.java文件中.
现在我只能看到代码,但扩展名没有转换为.java.
任何人请帮助我.
我有一个.jar文件.它是一个单独的文件,但我想"反编译"它以获得原始的java代码(或者最接近Java代码的东西 - 我能理解和编辑的东西).我相信我的文件(特别是)是一个java applet,但它保存为可执行jar文件(.jar).
我怎么做这样的事情?
我正在制作一个工具来动态显示运行java类的源代码.我需要一个工具来帮助我从一个动态编译Class Object到String源代码的.我知道一些反编译工具,如Jad,DJ反编译器可以反编译.class文件,但我希望工具可以:
Class<?> c = ..; // get from runtime environment
String sourcecode = **DecompileTool**.decompileClassObject(c);
return sourcecode;
Run Code Online (Sandbox Code Playgroud)
我需要这样一个DecompileTool,有谁知道?谢谢
是否有用于缩小java源代码的工具?
我知道这样的工具没有太多的实际需要,但我有兴趣将一些学生的代码减少到"裸骨",以显示他们的变量名称是如何被解释的(排序 - 它会严重地重新强制执行编译器忽略了他们对变量名的选择.(这个教学过程的下一步可能是向他们展示已编译的代码).
谢谢.
当我从eclipse 的java源代码文件创建一个可运行的jar文件时,我相信它创建了一个类文件,然后可以由JVM运行.
我问这个的原因是因为我将创建一个保存所有密码的java应用程序.该应用程序将包含一个要求输入密码的界面,然后如果密码正确则显示密码.以下是关于此主题的问题:
我希望反编译一个完整的.jar文件或简单的.class文件.
我一直在谷歌周围约一个小时,并且似乎找到任何工具来帮助我.
我发现的大多数工具要么过时,要么不起作用.
我也从stackoverflow 发现了这篇文章,但遗憾的是所有建议的程序都无法下载或过时.
我想要一种简单的方法来反编译Java.我想检查一下javac编译器对我的代码所做的转换和修改.什么是好产品,什么是好/坏.
我有这个 ClassParent 类
class ClassParent<T> {
public void set(T t)
{
//setter code
}
}
Run Code Online (Sandbox Code Playgroud)
然后我让这个 ClassChild 扩展了 ClassParent
class ClassChild extend ClassParent<String> {
public void set(String str)
{
//setter code
}
}
Run Code Online (Sandbox Code Playgroud)
实例化 ClassChild 类的新实例。
ClassParent<String> child = new ClassChild();
Run Code Online (Sandbox Code Playgroud)
显然,为了保留多态性,java编译器将在类中创建一个桥接方法ClassChild。我的问题是,在使用命令编译代码后javac,我想看看编译后的代码是什么样子,但我不知道该怎么做。.class我使用 NotePad++打开该文件,但我只看到了乱码。如何查看编译后的代码是我的问题。总的来说,我对编程很陌生。谢谢
java ×10
decompiler ×3
jar ×3
decompiling ×2
.class-file ×1
bytecode ×1
class ×1
exe ×1
generics ×1
jvm ×1
minify ×1