2012-02-25 3 views
1

コマンドラインからVLCJテストjarを実行しようとしています。 VLCJは、私が実行しようとしています実行可能なjarファイルと同じディレクトリにそれらのjarファイルを置けば、私は成功し、それを実行することができ、2つの外部JARファイルクラスパス設定でまだ外部Jarが見つかりません

  • jna.jar
  • platform.jar

が必要です。私は自分のディレクトリにそれらを入れて、次の手順を実行している場合しかし:

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA" -jar executable.jar 

それはJNAライブラリからクラスを見つけることができません。私はJavaにとって非常に新しいので、私の検索は可能な答えを明らかにしていません。だから私は誰かが答えるのを助けることを望んでいた:

これをどのようにデバッグするのですか?なぜ瓶を見つけられないのですか?私は自分の-classpathに何か間違っていますか?

ありがとうございます!コンスタンティン

+0

@RanRagいいえ。 [Java options](http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html#options)に従って、 '-jar'が指定されると、他のすべてのクラスパス設定は無視される。 –

+0

@DaveNewton:ありがとうございました。 – RanRag

答えて

4

は、明示的にjarファイルを含める、または単純な*ワイルドカードを使用することで、だけでなく、実行可能なjarファイルが含まれています。コマンドラインに実行可能なjarのmainクラスを指定します(これはマニフェストにあります)。

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA\*;executable.jar" com.foo.Bar 

は(どこcom.foo.Barmain方法、アプリのエントリポイントを含むクラスです。)

を参照してくださいJava options docs - jarが指定されると、他のすべてのクラスパスの情報が破棄され、瓶は、あなたが絶対必要を指定すべてのユーザークラスを含みます。


無関係ですが、私は常にWindows上のスペースを含むパスを避けようとしています。まあ、どこでも、特にJava関連のものを扱うときは。それは(私はあなたを見ているいくつかのアプリケーションサーバーのいくつかのバージョン)は、する必要がありますが、一般的には、エッジケースがあります。

+0

ねえデイブ、私はJavaのオプションのドキュメントを調べた。リンクありがとうございました。私はMETA-INF/MANIFEST.MFを抽出し、クラスパスを設定しています。このクラスパスは上書きされますか、それとも上書きを行うクラスパスですか?すべてのjarファイルを組み込み、メインクラスを設定するためにどのようなオプションを使用しますか? – Constantin

+0

@ Constantin正直なところ、瓶が独自のクラスパスを設定している場合は、おそらくそのクラスパスを使用します。それが問題のjarファイルを含んでいれば、実行可能なjarがそれらを期待する場所に置くだけで十分ですが、本当に確かではありません。私は試してみる必要があります。 –

+0

私はそれを得た! "java -cp" C:¥Users¥Constantin¥...¥JNA¥*; C:¥Users¥Constantin¥...¥vlcj¥vlcj-1.2.2-test.jar "uk.co.caprica.vlcj .test.basic.TestPlayer' – Constantin

関連する問題