2011-06-20 11 views
19

だから、私は非常によくこれを行うことができます:クラスパスでjarを使ってJavaクラスを実行するにはどうすればよいですか?

java mypackage.MyClass 

./mypackage/MyClass.classが存在するかどうか。私も喜んでこれを行うことができます:

java -cp myjar.jar mypackage.MyClass 

jarの適切な部分にクラスファイルが存在する場合は、これを行うこともできます。簡単なもの。 ./mypackage/MyClass.classが存在する

java -cp utilities.jar mypackage.MyClass 

、どこ./utilities.jarは(当然のMyClassのを、含まない)が存在する。しかし、私は私の人生のために、このような何かを管理することはできません。

私は愚かだと感じていますか?

答えて

39

おそらく:)基本的にはそれがちょうど.クラスパス上(カレントディレクトリ)だけでなく、jarファイルを含めています

# On Unix 
java -cp utilities.jar:. mypackage.MyClass 

# On Windows 
java -cp utilities.jar;. mypackage.MyClass 

+0

ああ。ガー。 * shame * – naiad

+0

'-cp'は' -classpath'の短縮形ですか? – overexchange

+0

@overexchange:はい。 ( 'java - ?'を実行すると、あなたにそれが伝えられたはずです) –

5

は、Windowsにしている場合は、これを試してみてください:

java -cp .;utilities.jar mypackage.MyClass 

それともこれをあなたは、Linuxにしている場合:

java -cp .:utilities.jar mypackage.MyClass 

を指定したときに、現在のディレクトリは、デフォルトではCLASSPATHではありません-cpの値です。

+0

いいえ、現在のディレクトリ*はデフォルトでクラスパスです。 *異なるクラスパスを指定して問題が発生した場合のみです。 –

+0

@ Vuntic:それは確かに正確だろう。たぶん@duffymoその言葉に編集したいと思います:) –

-1

CLASSPATHまたは-cpパラメータにmypackage.MyClassを含める必要があります。 例:

java -cp utilities.jar;myjar.jar mypackage.MyClass 

パス区切り記号は次のとおりです。 Unix/Linuxの場合

+0

私はちょうどいいことができます。 MyClassは、myjar.jarではなく、スタンドアロンのクラスファイルにあります。 – naiad

関連する問題