我的要求:我已解压缩jar
,然后在反编译之后将.class
文件更改为{{1}档案。
这个.java
文件几乎没有错误,因为它使用了来自.java
中其他位置的方法和变量等少数内容。
现在我想将JAR
文件更改为.java
文件,然后想要添加.class
并查看我的更改是否有效。
背景:
JAR
。ATUReportsListener.class
文件,我做了一些更改
它。ATUReportsListener.java
可执行文件和包
进入JAR。但由于.class
的东西很少
这取决于原ATU JAR的其他文件。我不是
能够编译它。我该怎么做?
转换为ATUReportsListener.java
文件。请提供宝贵的意见。
答案 0 :(得分:1)
.class文件仅在编译后创建。反编译并进行更改不会使其具有相同的字节代码。你需要对这些错误进行排序并再次编译
答案 1 :(得分:0)
.class为(成功编译的代码,即#34;可以在JVM"上运行)生成字节代码。因此,您必须允许编译器尝试构建代码以了解操作是否成功且无错误。
祝你好运。答案 2 :(得分:0)
如前所述,你根本无法做到。
Java类文件是包含Java字节码的文件(带有.class文件扩展名),可以在Java虚拟机(JVM)上执行。 Java类文件由 Java编译器从包含Java类的Java编程语言源文件(.java文件)生成。如果源文件有多个类,则每个类都编译为单独的类文件。
因此,如果不编译源代码,则无法获得 .class 文件。
答案 3 :(得分:0)
不,你不能直接将java文件转换为类文件。 解决您的问题首先是反编译整个jar文件类,然后对源文件进行更改。编译它并制作jar文件。
答案 4 :(得分:0)
你问的是错误的问题。正确的问题是"如何修改已编译的Jar中的代码"。
正如您所发现的,反编译无法提供帮助,因为通常无法重新编译结果。相反,您需要在字节码级别修改代码。这样做的好处是,无论代码是什么样的,或者它是否被混淆,它都将始终有效。当然,缺点是您必须了解Java字节码,但它并不难理解。
您可以使用多种工具来编辑字节码。例如,Krakatau diassembler和汇编程序。 Konloch的Bytecode Viewer提供了一个GUI。
答案 5 :(得分:0)
这是解决方案。当然,我们要编译.java
文件以获取.class
文件。
对于使用JAR的解决方案:
感谢各位回应。