2011-01-04 26 views
0

こんにちは私は1つのタスクを実行している1つのシェルスクリプトを書いています。それを行うにはどのようにクラスパスを設定する

特にlibフォルダ内にあるすべてのjarファイルの私はクラスパスを設定したい(または参照したい)、このコマンドの前に
java -jar abc.jar $* -adminid $j_username 

、?

+0

NITピック実行しているとき-jarを使用しての がメイン クラスを指定組み込んだスタンドアロンJARの作成:使用を '」 '$ *'の代わりに$ @ "'を使います。スペースでユーザーが入力した引数を分割する場所はごくわずかですが、これがその1つである可能性は低いです。 –

答えて

0
set CLASSPATH=pathtojars1;pathtojars2 

あなたのjavaコマンドの前。

または:それを行うには

java -classpath 
+0

どちらのシェル? Bourne Shellの派生物(Cシェルの派生物ではない)を使用していると仮定すると、 'set'コマンドはコマンドラインの引数をトラップします。 Cシェルの派生物では、CLASSPATH変数は設定されますが、エクスポートされません。 Bourne Shellの派生物では、 'CLASSPATH = path1:path2 java ...'と書くことができます。 Cシェルの派生物では、 'setenv CLASSPATH path1:path2'の後に' java'コマンドを続けて使います。 –

0

一つの方法は、次のようになります。

set CP=abc.jar:someother.jar 
java -cp $CP your.main.Class $* -adminid $j_username 

-jarを使用しているときにクラスパス上の他のJAR /リソースを指定することはできませんのでご注意しながら、それは価値がありますすなわち-cpスイッチは無視されますので、2つの間で選択する必要があります。

  • が他のJAR /リソース
  • が異なるJARファイルを持っていますが、代わりに、プログラム
+0

'set'表記は、Cシェルの派生語を使用する場合にのみ機能します。 Bourneシェル派生関数を使用している場合、コマンドはコマンドライン引数を壊し、 '$ *'は '$ CP'と等しくなります。これはあなたが望むものではありません。 –

関連する問題