更新jar中的.class文件

dphi5xsq  于 2021-07-05  发布在  Java
关注(0)|答案(11)|浏览(310)

我想用新的.class文件更新jar中的.class文件。最简单的方法是什么,特别是在eclipseide中?

fbcarpbf

fbcarpbf1#

1) 您可以将文件解压缩到名为
jarname.jar文件
然后替换文件夹中的文件,如果您在调试过程中经常更新类,这很方便
2) 您可以提取jar文件并替换该文件,然后jar文件将其重新恢复
3) 用7 zip打开jar,拖放新类以复制旧类

voase2hg

voase2hg2#

只需使用7-zip或winzip将新类文件拖放到jar中。您甚至可以使用父文件夹图标修改war文件中包含的jar文件,并在7zip检测到内部文件已被修改时单击ok

c86crjj0

c86crjj03#

另一种方法是不替换jar文件中的.class文件。而是将它放入一个新的jar文件中,并确保它出现在类路径上的时间早于原始jar文件。
我不确定我会建议生产软件,但它是快速和简单的开发。

jdgnovmf

jdgnovmf4#

高级步骤:

Setup the environment
Use JD-GUI to peek into the JAR file
Unpack the JAR file
Modify the .class file with a Java Bytecode Editor
Update the modified classes into existing JAR file
Verify it with JD-GUI

请参阅下面的链接,了解详细的步骤和方法,
https://www.talksinfo.com/how-to-edit-class-file-from-a-jar/

eit6fx6z

eit6fx6z5#

本教程详细介绍了如何更新jar文件

jar -uf jar-file <optional_folder_structure>/input-file(s)

其中“u”表示更新。

kxkpmulp

kxkpmulp6#

你想自动还是手动?如果手动操作,jar文件实际上只是一个zip文件,因此您应该能够用任何zip读取器打开它(如果您想通过eclipse自动更新jar文件,您可能需要查看eclipse中的ant支持并查看zip任务。

mpgws1up

mpgws1up7#

使用 jar -xvf 将文件解压缩到目录。
进行更改并替换类。
使用 jar -cvf 创建一个新的jar文件。

wmomyfyw

wmomyfyw8#

在jar中编辑properties/my\u app.properties文件: "zip -u /var/opt/my-jar-with-dependencies.jar properties/my_app.properties" . 基本上 "zip -u <source> <dest>" ,其中dest相对于jar extract文件夹。

wooyq4lh

wooyq4lh9#

jar文件只是一个伪装的.zip文件。压缩文件夹包含 .class 文件夹。
如果您使用macos:
将文件重命名为具有“.zip”扩展名。e、 g.myjar.jar->myjar.zip。
解压缩“.zip”(双击它)。将出现一个名为“myjar”的新文件夹
查找并更换 .class 与新的.class文件一起归档。
选择“myjar”文件夹的所有内容,然后选择“compress x items”。不要压缩文件夹本身,只压缩其内容
miscellaneous—在macos上编译单个.class文件,并引用原始jar
创建一个文件myclass.java,其中包含您的代码。
从聚光灯打开终端。 javac -classpath originalJar.jar myClass.java 这将创建名为myclass.class的已编译类。
从这里开始,按照上面的步骤操作。您也可以使用eclipse来编译它,只需通过右键单击项目“buildpath”->“addexternalarchives”来引用原始jar。在这里,您应该能够将其编译为jar,并使用上面的zip技术从jar中检索类。

uxhixvfz

uxhixvfz10#

jar是一个归档文件,您可以在自己喜欢的文件管理器中替换其中的一个文件(例如total commander)。

htzpubme

htzpubme11#

你可以在网上找到任何.jar文件的源代码,用基本设置在ide中导入相同的项目。在.java文件中进行必要的更改,并将其编译为.class文件。
编译完成后,您需要提取jar文件,用新的.class文件替换旧的.class文件。
并使用下面的命令重建.jar文件
jar cf测试.jar*
注:我做了这么多次这个改动在我们的项目中,希望你会觉得有用。

相关问题