抱歉,如果标题没有非常准确地说明我想要做的事情,但我真的不确定如何用一句话来描述它。基本上,我有一个jar文件,里面有一个java文件,我想编辑这个java文件。我使用7zip来做这件事,它可以工作,让我可以编辑java文件中的代码。我保存了它,当我在netbeans中打开java文件时,我的新代码就会显示出来。但是,新代码实际上并没有生效,我的程序仍然在使用旧代码。我不知道这是否重要,但是java文件名为Templates.java,位于名为net.sf.dynamicreports.examples的包中的名为dynamicreports-examples-5.0.0-sources.jar的jar中。
提前感谢任何人能提供的任何帮助。
编辑:尝试将jar导入到新项目中,并在将其放回原始项目之前从那里进行编辑,但没有成功(有关详细信息,请查看评论链)。仍然不知道如何解决这个问题,非常感谢任何人的帮助
发布于 2017-06-24 00:03:08
您的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.class文件复制到旧jar中的适当位置,覆盖旧文件。
在哪里可以找到Templates.class文件?
编辑2:如果您使用的是Eclipse,则可以在项目的bin文件夹中找到类文件。请看这个问题:Find the .class file compiled by Eclipse,或者如果你使用不同的编辑器/编译器,在谷歌上搜索它存储.class文件的位置。
https://stackoverflow.com/questions/44725546
复制相似问题