创建可执行jar文件

时间:2012-10-26 06:32:52

标签: java

我已经提取了一个包含xml,java类等的可执行jar文件。实际上这个可执行jar文件是一个带有依赖项的库。我需要在这个库中的一个类文件中修改一行代码。我已经成功编辑了类文件,现在我想将它重新打包到可执行jar。怎么做。

3 个答案:

答案 0 :(得分:5)

只需将整个邮件拉回来,jar就是一个zip文件。

  1. 解压缩.jar
  2. 修改课程
  3. 将整个结构重新压缩为.zip
  4. 将其重命名为.jar
  5. 你去。
  6. 您可以使用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