作成済みのJARファイルのグループに対してManifest
ファイルを作成するにはどうすればよいですか。
Eclipseを使用してJARファイルを作成しました。
Manifest
を含むJARファイルを作成するより良い方法はありますか?
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にクラスファイルが残っておらず、マニフェストファイルしか残っていませんでした。私の上記の方法はうまくいきます。
Antを使用すると、jartaskを使用できます。 manifestオプションがあり、含める必要があるすべての属性を指定できます。このようなもの:
<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>
マニフェストは単純なテキストファイルです Sunのチュートリアル はその内容を詳細に説明しています。
このようなファイルを作成し、次のコマンドで JARファイルを更新 するだけです。
jar cfm <jar-file> <manifest-addition>
Eclipseを使用すると、下部にあるJARマニフェスト仕様ページに、テキストボックスが表示されますメインを参照できますクラス。 Mainクラスを参照し、Finishをクリックします。これにより、jarファイルを実行できるようにするメインクラス情報を含むマニフェストが生成されます。 -開発オン
jar cf jar-file inputs-files
を使用してjar
を作成すると、デフォルトのマニフェストファイルが作成されます。
マニフェストファイルはテキストファイルです。また、JARファイルは実際にはZipファイルなので、 7-Zip などのツールを使用してマニフェストを追加することもできます。もちろん、これは署名付きのJARでは機能しません。
また、このドキュメントを参照してください。これは、Eclipseウィザードを使用して問題を解決するのに役立ちました。