1

この質問とほぼ同じトピックを持つ既に回答済みの質問を確認しましたが、一度回答したものはどれも私の問題を解決できませんでした。

私は今オンラインで約4時間検索しており、問題を解決するためにさまざまなことを試しました..

Java で Pong ゲームを作成しようとしていますが、プロジェクトをエクスポートして、友人に送信して試してもらいたいと考えています。

このプロジェクトに LWJGL を使用しているため、参照ライブラリにいくつかの jar が追加されています。また、LWJGL.jar には、プロジェクトの lib フォルダーに含まれる Windows ネイティブが追加されています。プロジェクト ビューアのイメージを次に示します。

この画像を投稿する理由は、プロジェクト内にすべてのライブラリと、プロジェクトの実行に必要なネイティブがあることを理解できるようにするためです。

jarが機能しなかった理由について読んでいるときに、Manifest.mfファイルが必要であることも読んだので、作成し、このマニフェストファイル内に次のテキストがあります。

Manifest-Version: 1.0
Main-Class: jGame.Main
Class-Path: lib/jars/asm-debug-all.jar lib/jars/jinput.jar lib/jars/lwjgl.jar lib/jars/izma.jar lib/jars/slick.jar

また、Class-Path の下に 2 つの空の行があります。それが必要だと聞いたからです。

このプロジェクトは、Eclipse で実行する限り正常に実行されますが、Eclipse で実行可能な jar または jar ウィザードを使用してプロジェクトをエクスポートすると、.jar ファイルをダブルクリックしても開始されないため、cmd に入り、次のコマンドを使用しました。

java.exe -jar JGame.jar

そして、次のメッセージが表示されました。

メインクラスの正しいパスを提供したことを少なくとも10回確認しました..そして、もう何をすべきかわかりません。Eclipse ウィザードで、実行可能な jar のエクスポートと通常の jar のエクスポートの両方を試みましたが、どちらも機能していません。また、ウィザードでは、実行可能を選択すると、lib フォルダーが置き換えられるためにライブラリが台無しになるため、実行可能ではない通常の jar をエクスポートすることを選択しました。

jarファイルをアーカイブとして開いてみたところ、次のようになりました。

4

1 に答える 1

0

JarSplice を使用しようとして、問題の解決に成功しました。

これを読んだ後:

jar の横にネイティブ ファイルを配置し、「-Djava.library.path」パラメーターを介してそれらを指す必要があるため、現在実行しようとしている方法では機能しません。

単一の jar だけが必要で、コマンド ラインとネイティブ ファイルの煩わしさを避けたい場合は、JarSplice ツールを使用します。JarSplice は使いやすく、ネイティブ ファイルを自動的に処理します。

1) プロジェクト (クラスとリソース) を jar にエクスポートするだけです (IDE から行う方が簡単です)。

2) 次に、JarSplice を実行し、必要なすべての jar を [jars] タブに追加します (アプリの jar、lwjgl.jar、および使用しているその他の外部 jar)。

3) 次に、ネイティブ タブで、すべてのネイティブ ファイル (windows *.dll、linux *.so、mac *.dylib & *.jnilib) を追加します。

4) クラス タブで、メイン クラスを追加します。次に、jar を作成します。

次に、この jar をダブルクリックするだけで実行できます (または、必要に応じてコマンド ラインから「java -jar yourapp.jar」を使用します)。

このリンクからこの解決策を見つけました: Can't start .jar file (using LWJGL)

初めて機能しなかった理由は、JarSplice の使用中に Eclipse からエクスポートされた実際の .jar ファイルを含めなかったためです。

于 2013-04-21T17:35:16.027 に答える