Java 更新jar中的.class文件
我想用一个新文件更新jar中的.class文件。最简单的方法是什么,尤其是在EclipseIDE中?您想自动还是手动完成?如果手动操作,JAR文件实际上只是一个ZIP文件,因此您应该能够使用任何ZIP读取器打开它。(您可能需要先更改扩展名。)如果您想通过Eclipse自动更新JAR文件,您可能需要查看Eclipse中的支持并查看。JAR是一个归档文件,您可以在您喜欢的文件管理器(例如Total Commander)中自己替换其中的文件。详细介绍如何更新JAR文件Java 更新jar中的.class文件,java,eclipse,jar,Java,Eclipse,Jar,我想用一个新文件更新jar中的.class文件。最简单的方法是什么,尤其是在EclipseIDE中?您想自动还是手动完成?如果手动操作,JAR文件实际上只是一个ZIP文件,因此您应该能够使用任何ZIP读取器打开它。(您可能需要先更改扩展名。)如果您想通过Eclipse自动更新JAR文件,您可能需要查看Eclipse中的支持并查看。JAR是一个归档文件,您可以在您喜欢的文件管理器(例如Total Commander)中自己替换其中的文件。详细介绍如何更新JAR文件 jar -uf jar-file
jar -uf jar-file <optional_folder_structure>/input-file(s)
jar-uf jar文件/输入文件
其中“u”表示更新。1)您可以将文件解压缩到名为
jarname.jar
然后替换文件夹中的文件,如果您在调试过程中大量更新该类,这将非常方便
2) 您可以提取jar并替换该文件,然后jar将其重新安装
3) 使用7 zip打开jar,拖放新类以复制旧类只需使用或Winzip将新类文件拖放到jar即可。您甚至可以使用父文件夹图标修改WAR文件中包含的JAR文件,并在7zip检测到内部文件已被修改时单击“确定”另一种选择是不替换JAR文件中的.class文件。而是将其放入一个新的jar文件中,并确保它出现在类路径上的时间早于原始jar文件 我不确定我会推荐这个用于生产软件,但对于开发来说,它又快又容易
jar-xvf
将文件解压缩到目录中jar-cvf
创建一个新的jar文件JAR文件只是一个伪装的.zip文件。压缩文件夹包含
.class
文件
如果您在macOS上:
.class
文件并将其替换为新的.class文件javac-classpath originalJar.jar myClass.java
这将创建名为myClass.class的编译类从这里开始,按照上面的步骤操作。您也可以使用Eclipse来编译它,只需右键单击项目“BuildPath”->“AddExternalArchives”,引用原始jar即可。从这里,您应该能够将其编译为jar,并使用上面的zip技术从jar中检索类。编辑jar中的属性/my_app.properties文件:
“zip-u/var/opt/my-jar-with-dependencies.jar properties/my_app.properties”
。基本上是“zip-u”
,其中dest与jar extract文件夹相对。您可以在线找到任何.jar文件的源代码,使用基本设置在IDE中导入相同的项目。对.java文件进行必要的更改,并将其编译为.class文件
编译完成后,您需要提取jar文件,将旧的.class文件替换为新的
并使用下面的命令重建.jar文件
Jar cf test.Jar*
注意:我在我们的项目中做了很多次这样的更改,希望您会发现它很有用。高级步骤:
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
请参阅下面的链接,了解执行此操作的详细步骤和方法
使用WinZip,您必须首先启动WinZip打开它,然后将jar文件拖到WinZip窗口中。Windows上的7z不支持大写/小写,即它将同时替换CA.class和CA.classIn此命令中:u选项表示您要更新现有的jar文件。f选项表示要更新的JAR文件是在命令行上指定的。jar文件是要更新的现有jar文件。输入文件是要添加到Jar文件的一个或多个文件的空格分隔列表。我想将属性文件更新到特定位置,理想情况下应该有两个参数
source
和destination
。对于我来说,输入文件
,但是源代码在哪里?@ShashiRanjan您找到解决方案了吗???@Dinesh我使用了“zip-u/var/opt/my-jar-with-dependencies.jar properties/my_app.properties”。基本上是“zip-u”,其中dest是相对于jar extract文件夹的。非常感谢@ShashiRanjan