【问题标题】:No changes after I edit a jar file编辑 jar 文件后没有任何变化
【发布时间】:2017-06-23 15:53:38
【问题描述】:

对不起,如果标题没有非常准确地说明我想要做什么,但我真的不知道如何用一句话来描述它。基本上我有一个 jar 文件,里面有一个 java 文件,我想编辑这个 java 文件。我使用 7zip 来完成这项工作,它可以让我编辑 java 文件中的代码。我保存了它,当我在 netbeans 中打开 java 文件时会显示我的新代码。但是,新代码实际上并没有生效,我的程序仍在使用旧代码。我不知道这是否重要,但 java 文件名为 Templates.java,位于名为 net.sf.dynamicreports.examples 的包中,位于名为 dynamicreports-examples-5.0.0-sources.jar 的 jar 中。

提前感谢任何人提供的任何帮助。

编辑:尝试将 jar 导入新项目并从那里编辑,然后再将其放回原始项目,但没有运气(查看评论链以获取更多详细信息)。仍然不知道如何解决这个问题,非常感谢任何帮助

【问题讨论】:

    标签: java jar 7zip


    【解决方案1】:

    您的 jar 包含 .class 文件和 .java 文件。 创建 jar 时,会编译 .java 文件并从中创建 .class 文件。您应该有一个对应于 Templates.java 的 Templates.class 文件。 当您编辑 Templates.java 时,从未重新编译 Templates.class。此类文件是您的程序使用的文件。 不幸的是,更改 jar 文件的适当方法是重新生成整个 jar。

    因此,您应该首先打开用于创建 jar 的代码,在此处进行 java 更改,然后创建一个新 jar。 即使是最小的更改,您也需要这样做。

    不幸的是,我没有自己制作罐子,我从其他地方得到它,所以我没有用来制作它的代码,只有罐子本身。我该怎么办?

    编辑:我看到你的评论说你一开始就没有制作罐子。这不是太大的问题,因为您确实有 java 源代码。您需要做的是复制 jar 中的所有 .java 文件并用它们制作一个新 jar。或者,只需使用 Eclipse 或任何您喜欢的 Java 编辑器来编译您的 Templates 类,并将它创建的新 Templates.class 文件复制到旧 jar 中的适当位置,覆盖旧的。

    在哪里可以找到 Templates.class 文件?

    编辑 2:如果您使用的是 Eclipse,您可以在项目的 bin 文件夹中找到类文件。请参阅此问题:Find the .class file compiled by Eclipse 或者如果您使用其他编辑器/编译器,请在 google 中搜索其 .class 文件的存储位置。

    【讨论】:

    • 不幸的是我没有自己制作罐子,我从其他地方得到它,所以我没有用来制作它的代码,只有罐子本身。我该怎么办?
    • 在哪里可以找到 Templates.class 文件?
    • 我找到了 class 文件夹,但它只有 java 文件本身的 .class 文件,而不是我的 jar 的任何 .class 文件。我是在找错地方还是做错了什么?顺便说一句,我正在使用 netbeans
    • 您在哪里编辑了 Templates.java 文件?如果您在记事本或某种文本编辑器以外的任何其他工具中执行此操作,则它应该在编译时为您生成一个 .class 文件。我不知道 netbeans,很抱歉,我只能告诉您寻找它。
    • 当我使用 7zip 时,我能够进入 jar 文件并找到 Templates.java 文件的记事本。是记事本做的有问题吗?
    猜你喜欢
    • 2019-02-11
    • 2023-04-06
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    相关资源
    最近更新 更多