2

xml、java クラスなどを含む実行可能 jar ファイルを抽出しました。実際には、この実行可能 jar ファイルは依存関係を持つライブラリです。このライブラリのクラス ファイルの 1 つで、1 行のコードを変更する必要があります。クラスファイルを正常に編集したので、実行可能なjarに再パックしたいと思います。どうやってするの。

4

3 に答える 3

6

全体を圧縮するだけです。jar は単なる zip ファイルです。

  1. .jar を解凍します。
  2. クラスを変更する
  3. 構造全体を .zip に再圧縮します
  4. 名前を.jarに変更します
  5. ほらね。

たとえば、 ant<jar>タスクを使用して自動化できます。

以下のコメントで述べたようjarに、JDK インストールに付属のツールを使用できます。 jar -xvf your.jarと を抽出しjar -cvf your.jar inputfilesます。ドキュメントを参照してください。

META-INF/MANIFEST.MFJAR を実行可能にするのは、次のようなエントリ ポイント クラスを説明するファイルがその構造に含まれていることです。

Manifest-Version: 1.0
Main-Class: foo.bar.FooBar
于 2012-10-26T06:35:27.027 に答える
2

jar コマンドを使用すると、これを行うことができます

コマンド プロンプトを使用して、すべてのクラスがあるルート フォルダーを取得します。次のコマンドを使用します

 jar -cvf myjarname.jar *

* means all the files and folders in that location
于 2012-10-26T06:39:27.697 に答える
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
于 2012-11-25T19:26:43.850 に答える