4

ここでは Java 初心者です。

LWJGL lib と Slick を使用して、Eclipse (Windows 上) で小さな Java アプリを作成しました。次に、実行可能な.jarファイルとしてエクスポートし、結果の.jarを実行すると、何もしません。エラーも何もありません-実行されていないようです。私はこのチュートリアルに従っています: http://www.cs.bsu.edu/homepages/pvg/misc/slick_eclipse_tutorial.php

私のmanifest.mfファイルは次のようになります。

Manifest-Version: 1.0
Main-Class: SimpleTest
Class-Path: lib/lwjgl.jar lib/slick.jar

LWJGL エクスポートを使用しないアプリは問題なくエクスポートされます。私は何を間違っていますか?

JarSplice を使ってみましたが、うまくいきませんでした。ポインタはありますか?

4

3 に答える 3

5

私の最善の策は、ファイルであなたを参照するのを逃したことMain-classですmanifest

これを見て、 manifest-file を正しく設定する方法を示します。

楽しんで!

編集:

Manifest-Version: 1.0 
Main-Class: SimpleTest 
Class-Path: lib/lwjgl.jar lib/slick.jar  
<-- new line without any content -->

編集2:

OK、この動作を再現できました。エクスポートされた jar をコンソール経由で実行しようとしたときに、次の例外が発生しました。

Exception in thread "main" java.lang.reflect.InvocationTargetException
   ...
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
   ... 
    ... 5 more

いくつかの調査を行った後、ネイティブ dll を実行可能 jar にパッケージ化することはほとんど不可能であることがわかりました。
明確にするために、次の 3 つのオプションを見つけました。

  1. 通常、jarをEclipse内でRunnable JARとしてエクスポートし、その後、ネイティブdllを含むフォルダーに配置します(これを確認し、チュートリアルでのセットアップで機能しました)
  2. ここに記載されているように、実行時に一時ディレクトリにdllを抽出します
  3. または、ネイティブ ライブラリで実行可能な jar を作成できるOne-Jarプロジェクトを使用します。

これで問題が解決したことを願っています。乾杯!

于 2012-03-07T11:32:03.020 に答える
3

私はEclipseとSlickで同様の問題を抱えています.これが私が見つけたものです. ( LWJGL wikiから引用)

java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path が発生し続けます

これは、ネイティブ部分が正しく設定されていないためです。-Djava.library.path=path/to/dir をコマンドラインに追加するか、IDE の VM オプションとして追加して、lwjgl がネイティブ ファイルを含むフォルダーを見つけられるようにします。

つまり、エクスポートされた jar には適切なネイティブがありません

ここで、実行可能な jar にコンパイルするときは、ダブルクリックで起動するスタイルのアプリケーションが必要であると想定しているため、それはあまりありません。

java.library.pathで起動後に設定するSystem.setPropertyか、必要なネイティブをデフォルトのライブラリパスに入れることができます。

私は自分自身で最善の解決策を見つけたわけではありませんが、これが役に立てば幸いです

于 2012-07-28T00:40:31.717 に答える