2

lwjglとslick-utilを使用したJavaゲームがあります。それは私のコンピューターでは完全に機能しますが、他の人のコンピューターでは機能しません。それは瓶にパッケージされています。Eclipseを使用してjarを作成し、Jarspliceを使用してネイティブとライブラリを封印しました。ベースJarフォルダーには、パッケージディレクトリとネイティブのみが含まれ、マニフェストやクラスパスは含まれません。ゲーム自体はアプレットではありません。

私のコンピューターから、このjarは機能し、ゲームを完璧に実行します。他の人の場合、メインコードでDisplayクラスが呼び出されるとすぐにクラッシュします(基本的なJava名とアイコンおよび灰色の内部ウィンドウを含む空のフレームが残ります)。私は32ビットと64ビットの両方のネイティブをパックし、32ビットと64ビットのWindowsシステムで同様にテストしましたが、それを実行するのは私のもの(Windows 32ビット)だけです。

jarには、ベースフォルダーにクラスパスまたはマニフェストがありません。

jarを実行する前に、eclipseビルド参照フォルダーの名前をnativesフォルダーに変更しましたが、それでも機能しました。私は他のどこにも原住民を持っていません。

これがjar内のMETA-INF/MANIFEST.MFです。Main-Class行を削除しても、jarがコンピューターで機能しないことに注意してください。参照されているクラスはJar内にあります。

 Manifest-Version: 1.0
 Launcher-VM-Args: 
 Launcher-Main-Class: processors.Main
 Main-Class: org.ninjacave.jarsplice.core.JarSpliceLauncher

jar内のディレクトリ構造は次のとおりです。

   META-INF
   org
   game packages including processors
   all the natives.dll

更新:おそらく私がインストールしたものが原因で、自分のマシンでのみ検出されるネイティブに明確に絞り込みました。多分私は何かが欠けていますか?

4

1 に答える 1

1

リソース、jar、およびネイティブを一緒にzipファイルにパッケージ化することでこの問題を解決しました。Javaは、jarが含まれるフォルダーを自動的に選択して、ネイティブとリソースを検索します。

于 2011-10-27T20:03:18.670 に答える