web-dev-qa-db-ja.com

JARファイル用のEclipseを使用したマニフェストファイルの自動作成

作成済みのJARファイルのグループに対してManifestファイルを作成するにはどうすればよいですか。

Eclipseを使用してJARファイルを作成しました。

Manifestを含むJARファイルを作成するより良い方法はありますか?

13
ajib

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に戻ります。

7
Nate

今日、この問題に遭遇しました。

はい、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にクラスファイルが残っておらず、マニフェストファイルしか残っていませんでした。私の上記の方法はうまくいきます。

5
user195488

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>
3
JuanZe

マニフェストは単純なテキストファイルです Sunのチュートリアル はその内容を詳細に説明しています。

このようなファイルを作成し、次のコマンドで JARファイルを更新 するだけです。

jar cfm <jar-file> <manifest-addition>
3

Eclipseを使用すると、下部にあるJARマニフェスト仕様ページに、テキストボックスが表示されますメインを参照できますクラス。 Mainクラスを参照し、Finishをクリックします。これにより、jarファイルを実行できるようにするメインクラス情報を含むマニフェストが生成されます。 -開発オン

0
Kenneth V

jar cf jar-file inputs-filesを使用してjarを作成すると、デフォルトのマニフェストファイルが作成されます。

0
João Silva

マニフェストファイルはテキストファイルです。また、JARファイルは実際にはZipファイルなので、 7-Zip などのツールを使用してマニフェストを追加することもできます。もちろん、これは署名付きのJARでは機能しません。

0
Joonas Pulakka

また、このドキュメントを参照してください。これは、Eclipseウィザードを使用して問題を解決するのに役立ちました。

Eclipseのドキュメントを参照

0
Reedyseth