java - 编辑 jar 文件后没有任何变化

标签 java jar 7zip

很抱歉,如果标题没有非常准确地表达我想要做的事情,但我不太确定如何用一句话来描述它。基本上我有一个 jar 文件,里面有一个 java 文件,我想编辑 java 文件。我使用 7zip 来执行此操作并且它有效,让我可以编辑 java 文件中的代码。我保存了它,当我在 netbeans 中打开 java 文件时,我的新代码就会显示出来。然而,新代码实际上并没有生效,我的程序仍然使用旧代码。我不知道这是否重要,但 java 文件名为 Templates.java,位于名为 net.sf.dynamicreports.examples 的 jar 中 dynamicreports-examples-5.0.0-sources.jar

预先感谢任何人可以提供的任何帮助。

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

最佳答案

您的 jar 包含 .class 文件和 .java 文件。 创建 jar 时,将编译 .java 文件并根据它们创建 .class 文件。您应该有一个与 Templates.java 相对应的 Templates.class 文件。 当您编辑 Templates.java 时,Templates.class 从未重新编译。该类文件是您的程序使用的文件。 不幸的是,更改 jar 文件的正确方法是重新生成整个 jar。

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

I didn't make the jar myself unfortunately, I got it from somewhere else so I don't have the code used to make it, just the jar itself. What should I do?

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

Where would I find the Templates.class file?

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

关于java - 编辑 jar 文件后没有任何变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44725546/

相关文章:

java - 将在 linux 中从 windows 创建的 jar 文件作为可执行文件运行

java - 在新变量赋值之前返回变量的优雅方法?

java - 捕获异常后,模拟器仍然显示 "Application has stopped unexpectedly "

java - 当您在生产环境中测试和运行 jar 时,如何创建可用的 MANIFEST.MF?

Ant:从合并的 jar 文件中排除文件

coldfusion - 在coldfusion中提取7z文件

Java:对 Button 使用 setText() 方法时出现问题

java - 使用 OSHI lib 计算进程(作业)占用的内存

c# - 为什么 LZMA SDK (7-zip) 这么慢

command-line - 7z bzip2 格式命令行错误