最初のスクリーンショットのエラーメッセージで示されているように、ここで欠けているのはネイティブライブラリです。オペレーティングシステム固有のネイティブコードに書き込まれ、コンパイルされたソフトウェアライブラリです。あなたがする必要があることは、ソフトウェアが動作するオペレーティングシステムに固有のライブラリを提供することです。 32または64ビットWindows用のDLL。マニフェストは、それらのライブラリを含む機能を提供しません。
プログラムは、Windows上で実行されると、Javaは次の場所にネイティブライブラリを検索します:
- カレントディレクトリ
- PATH環境変数内のディレクトリ
- Javaでのディレクトリ。 library.path(指定されている場合)
すべてのファイルを1つのディレクトリに入れるのが最も簡単です。これを行うと、あなたは今と同じようにプログラムを実行できるはずです。
java.library.path
オプションは、あなたがあなたのPATH上でプログラムを実行していないしたものに別のディレクトリにネイティブライブラリファイルを入れたい場合に必要だけです。この場合にのみ、java.library.path
を追加する必要があります。 java
の後に-Djava.library.path=c:\path\to\your\lib
を追加してください。また、相対パスを使用することもできます。コマンドを実行したときのディレクトリに関連するパス。
他の依存関係がありますが、JavaライブラリLeapJava.jar
で、後でエラーメッセージが表示されます。 -jar
のjarを実行すると、単一のjarがある場合にのみ動作しますが、複数のプログラム(独自のプログラム+依存関係)があるため、代わりに-classpath
(または省略形の-cp
)引数を使用し、あなたのメインクラス。クラスパス引数はクラスパスのセミコロンで区切られたリストですが、メインクラスはpublic static void main
メソッドを含むクラスです(例: your.package.name.YourMainClass
。だからあなたのui.jarががC:\Users\Ian\Desktop\Leap Data UI
にまだある、あなたはそのディレクトリに移動して実行することができるはずと仮定:
java -cp UI.jar;UI_lib\LeapJava.jar -Djava.library.path="UI_lib\x64" your.package.name.YourMainClass
だから私は私のJavaコードでこれを追加できますか?私はパスを明示的に設定する方法についてはあまりよく分かりません。これが明示的に行われれば、私の友人もそれをやる必要があるということですか?申し訳ありませんが、私はかなり新しくコーディングしています。 –
あなたがする必要があるいくつかのことがあります。まず、LeapJavaに付属の関連する.dllファイルを見つける必要があります。それから、あなたのプログラムを実行する人にそれらのファイルを与える必要があります - それらは別々のファイルとして残され、あなたのjarファイルに含める必要はありません。最後に、あなたやあなたの友人がプログラムを実行するときにライブラリのパスを含める必要があります。あなたの例では 'java -jar UI.jar'を実行しました。これは' -Djava.libraryをインクルードするために変更する必要があります。path = c:\ path \〜\ lib \ folder'に移動します。 – Taufiq
元の投稿を編集して、私がやっていると思われる結果を表示しました。私は間違って何をしていますか? –