更改JAR中已编译的java.class文件

更改JAR中已编译的java.class文件,java,.class-file,Java,.class File,我的要求:我解包了一个jar,然后在反编译后将.class文件更改为.java文件。 这个.java文件几乎没有错误,因为它使用的方法和变量等东西很少,这些东西都来自JAR 现在我想将.java文件更改为.class文件,然后添加到JAR中,查看我的更改是否有效 背景: 我已经解包了ATUJAR文件,反编译了 ATUReportsListener.class 我现在有了ATUReportsListener.java文件,并做了一些更改 去吧 现在我想再次转换到.class可执行文件和包 放进罐子

我的要求:我解包了一个
jar
,然后在反编译后将
.class
文件更改为
.java
文件。
这个
.java
文件几乎没有错误,因为它使用的方法和变量等东西很少,这些东西都来自
JAR

现在我想将
.java
文件更改为
.class
文件,然后添加到
JAR
中,查看我的更改是否有效

背景

  • 我已经解包了ATUJAR文件,反编译了
    ATUReportsListener.class
  • 我现在有了
    ATUReportsListener.java
    文件,并做了一些更改 去吧
  • 现在我想再次转换到
    .class
    可执行文件和包 放进罐子里。但是由于
    atureport.java
    的内容很少 依赖于原始ATU JAR的其他文件。我不是 能够编译它
  • 我该怎么做?

    正在转换为
    .class
    文件。请提供有价值的输入。

    .class文件仅在编译后创建。反编译和进行更改不会使用相同的字节码。您需要对这些错误进行排序并再次编译它。

    .class生成的字节码(成功编译的代码,即“可以在JVM上运行”)。因此,您必须允许编译器尝试并构建您的代码,以便知道操作将成功且无错误

    资料来源:


    祝你好运。

    如前所述,你根本不能

    Java类文件是包含可在Java虚拟机(JVM)上执行的Java字节码的文件(扩展名为.class)。Java类文件由Java编译器从包含Java类的Java编程语言源文件(.Java文件)生成。如果一个源文件有多个类,则每个类都被编译成一个单独的类文件


    因此,如果不编译源代码,就无法获得.class文件。

    不,不能直接将java文件转换为类文件。
    问题的解决方案是首先反编译整个jar文件类,然后对源文件进行更改。编译它并生成jar文件。

    你问错了问题。正确的问题是“如何在编译的Jar中修改代码”

    正如您所发现的,反编译没有帮助,因为通常不可能重新编译结果。相反,您需要在字节码级别修改代码。这样做的好处是,无论代码是什么样的,或者代码是否模糊,它都将始终工作。当然,缺点是您必须理解Java字节码,但这并不难学


    有几种工具可以用来编辑字节码。例如,Krakatau离散器和装配器。Konloch的字节码查看器提供了一个GUI。

    以下是解决方案。当然,我们必须编译
    .java
    文件来获得
    .class
    文件

    对于使用JAR的解决方案:

  • 使用反编译器()打开JAR
  • 获取反编译文件的源(您将获得包(全部 .java文件)
  • 现在,根据您的意愿进行更改
  • 在Eclipse中创建JAVA项目并导入所有内容
  • 现在保存它
  • 您可以在bin文件夹中看到.class文件
  • 将.class文件添加到原始可执行文件.class文件集中
  • 完成后,只需再次将其包装在罐子中即可 导出为JAR)

  • 谢谢大家的回复。

    不,这是不可能的!将
    .java
    转换为
    .class
    文件的过程称为编译,无论您如何操作,也不管您使用什么工具。是的。手工编写字节码-有一个密码,这样你就可以开始破解了。不过说真的——不,没有。你期待什么?背景:1。我已经解包了ATUJAR文件,并且反编译了ATUReportsListener.class。2.我现在已经创建了“ATUReportsListener.java”文件,并对其进行了一些更改。3.现在我想再次转换为“.class”可执行文件,并将其打包到JAR中。但是由于“ATUReportsListener.java”没有多少东西依赖于原始ATUJAR的其他文件,所以我无法编译它。我该怎么做????转换为.class文件。请提供您有价值的输入添加更多详细信息和对answerComplete jar的引用可以反编译为。现在,根据需要对源代码进行更改并再次创建jar文件。嗨,Laxman Singh,但反编译器不允许您正确编辑代码??我只能查看代码。如果我想通过编译再次获得.class,我必须将JAR中的所有.java文件添加到一个新项目中。还有其他选择吗???我提取了JAR中的所有.java文件,然后替换了该文件。我现在如何编译所有的.java文件???背景:1。我已经解包了ATUJAR文件,并且反编译了ATUReportsListener.class。2.我现在已经创建了“ATUReportsListener.java”文件,并对其进行了一些更改。3.现在我想再次转换为“.class”可执行文件,并将其打包到JAR中。但是由于“ATUReportsListener.java”没有多少东西依赖于原始ATUJAR的其他文件,所以我无法编译它。我该怎么做????转换为.class文件请给出有价值的输入顺序,以便正确编译
    ATUReportsListener.java
    ,并生成预期的
    。类
    ,您还应提供所有类依赖项以及这些依赖项的依赖项等。你只能访问JAR,没有源代码?是的,我已经对JAR进行了反编译,得到了完整代码的.java文件。我也做了我想要的改变。现在我得把整件事都编出来。你能帮我吗?背景:1。我已经解包了ATU Jar文件,并且反编译了ATUReport