我已经提取了一个包含xml,java类等的可执行jar文件。实际上这个可执行jar文件是一个带有依赖项的库。我需要在这个库中的一个类文件中修改一行代码。我已经成功编辑了类文件,现在我想将它重新打包到可执行jar。怎么做。
答案 0 :(得分:5)
只需将整个邮件拉回来,jar就是一个zip文件。
您可以使用ant <jar>
任务自动执行此操作。
如下面的评论所述,您可以使用JDK安装附带的jar
工具。
jar -xvf your.jar
提取和jar -cvf your.jar inputfiles
。
请参阅documentation。
JAR可执行文件的作用是它在结构中包含一个位于META-INF/MANIFEST.MF
的文件,用于描述入口点类,例如:
Manifest-Version: 1.0
Main-Class: foo.bar.FooBar
答案 1 :(得分:1)
使用jar命令可以执行此操作
获取命令提示符并获取所有类的根文件夹。并使用 以下命令
jar -cvf myjarname.jar *
* means all the files and folders in that location
答案 2 :(得分:0)
此外,验证您是否具有可执行jar文件的文件关联。如果不这样做,您可以使用此批处理文件创建此关联:
@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
:: this script creates a file association for executable .jar files
ECHO Creating .jar file association...
ECHO JAVA_HOME is %JAVA_HOME%
IF NOT DEFINED JAVA_HOME GOTO :FAIL
REG ADD "HKCR\jarfile" /ve /t REG_SZ /d "Executable Jar File" /f
REG ADD "HKCR\jarfile\shell" /ve /f
REG ADD "HKCR\jarfile\shell\open" /ve /f
ECHO REG ADD "HKCR\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%*" /f
REG ADD "HKCR\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%**" /f
REG ADD "HKLM\jarfile" /ve /t REG_SZ /d "Executable Jar File" /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell" /ve /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell\open" /ve /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%*" /f
ECHO Finished creating .jar file association for executable .jar files.
PAUSE
GOTO EOF
:FAIL
ECHO Script failed. JAVA_HOME not defined.
PAUSE