Manifest
作成済みの JAR ファイルのグループのファイルを作成するにはどうすればよいですか。
Eclipse を使用して JAR ファイルを作成しました。
を持つJARファイルを作成するより良い方法はありますManifest
か?
Eclipse には、Jar のマニフェスト ファイルを生成するオプション、生成されたマニフェストをプロジェクトに保存するオプション、またはマニフェストに指定されたファイルを使用するオプションがあります。
私は Eclipse 3.4.2 を使用しており、このプロセスの 4 番目の画面にあります。
プロジェクトを右クリック -> エクスポート -> Java/JAR ファイル、次へ、JAR ファイル仕様、次へ、JAR パッケージ オプション、次へ、JAR マニフェスト仕様。
デフォルトでは、JAR のデフォルトのマニフェストを生成するだけで、生成されたファイルをプロジェクトに保存しません。そのため、JAR ファイルを開くと、マニフェストがありますが、次のようなものになります。
Manifest-Version: 1.0
初期化。
既存の JAR を再構築せずに変更したい場合、最も簡単な方法はおそらく mad-j が提案したとおりに実行し、Zip ツールでそれらを開き、既存の /META-INF/MANIFEST.MF ファイルを編集して保存することです。 JARに戻します。
今日、この問題に遭遇しました。
はい、Eclipse がマニフェストを作成しますが、これは冗談です。
行のみが含まれますManifest-Version: 1.0
。Main クラスを追加する方法がわからないので、独自の MANIFEST.MF ファイルを作成し、それをプロジェクトのメイン ディレクトリ (src でも lib でもありません) に追加しました。次に、[エクスポート] > [JAR ファイル] に移動したら、[次へ] を最後まで押して ([完了] を早く押しすぎないでください)、プロジェクトからマニフェストを選択するオプションをクリックします。プロジェクトに追加したマニフェスト ファイルを選択します。マニフェストにメイン クラス (com.company など) へのパスがあることを確認します。たとえば、基本的なマニフェスト ファイルは次のようになります。
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass
@Michaelの方法を試しましたが、JARにクラスファイルが残っておらず、マニフェストファイルのみが残っていました..まあ。私の上記の方法はうまくいきます。
マニフェストは単純なテキストファイルであり、Sunのチュートリアルではその内容について詳しく説明しています。
このようなファイルを作成し、次のコマンドでJARファイルを更新するだけです。
jar cfm <jar-file> <manifest-addition>
Ant ではjar taskを使用できます。含める必要があるすべての属性を指定するマニフェストオプションがあります。このようなもの:
<target name="create-my-jar">
<jar jarfile="foo.jar" basedir="bin/classes">
<manifest>
<attribute name="Class-Path" value="xxx"/>
<attribute name="Ant-Version" value="${ant.version}"/>
<attribute name="Created-By" value="JDK ${java.version} (${java.vendor})"/>
<attribute name='Specification-Title' value='xxx' />
<attribute name='Specification-Version' value='xxx' />
<attribute name='Specification-Vendor' value='xxx' />
<attribute name='Implementation-Title' value='xxx' />
<attribute name='Implementation-Version' value='xxx' />
<attribute name='Implementation-Vendor' value='xxx' />
<attribute name='Implementation-Vendor-Id' value='xxx' />
<attribute name='Implementation-Vendor-URL' value='xxx' />
<attribute name="Built-By" value="${user.name}"/>
<attribute name='Build-Date' value='xxx'/>
<attribute name='Build-Time' value='xxx'/>
</manifest>
</jar>
</target>
jar
usingを作成すると、デフォルトのマニフェストファイルが作成されますjar cf jar-file inputs-files
。
マニフェストファイルはテキストファイルです。また、JARファイルは実際にはZIPファイルであるため、7-zipなどのツールを使用してマニフェストを追加することもできます。もちろん、これは署名されたJARでは機能しません。
また、このドキュメントを参照してください。これは、Eclipse ウィザードを使用して問題を解決するのに役立ちました。