很抱歉,如果标题没有说明我想要做的非常准确,但我不确定如何用一句话来描述它。基本上我有一个包含java文件的jar文件,我想编辑java文件。我使用7zip这样做,它工作,让我编辑java文件中的代码。我保存了它,当我在netbeans中打开java文件时,我的新代码出现了。但是,新代码实际上并没有生效,我的程序仍在使用旧代码。我不知道这是否重要,但java文件名为Templates.java
,位于名为net.sf.dynamicreports.examples
的jar中名为dynamicreports-examples-5.0.0-sources.jar
的包中。
提前感谢任何人提供的任何帮助。
编辑:尝试将jar导入新项目并从那里进行编辑,然后再将其放回原始项目中,但没有运气(请查看评论链以获取更多详细信息)。仍然不知道如何解决这个问题,并非常感谢任何帮助
答案 0 :(得分:1)
您的jar包含.class文件和.java文件。 创建jar时,会编译.java文件,并从中创建.class文件。您应该有一个与Templates.java对应的Templates.class文件。 编辑Templates.java时,从未重新编译Templates.class。该类文件是程序使用的文件。 不幸的是,更改jar文件的适当方法是重新生成整个jar。
所以,你应该做的是首先打开用于创建jar的代码,在那里进行java更改,然后创建一个新的jar。 即使是最小的变化,您也需要这样做。
我不幸地自己制作了这个罐子,我是从其他地方拿到的,所以我没有用来制作它的代码,只是罐子本身。我该怎么办?
编辑:我看到你的评论,你没有首先制作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文件的位置。