こんにちは私は1つのタスクを実行している1つのシェルスクリプトを書いています。それを行うにはどのようにクラスパスを設定する
特にlibフォルダ内にあるすべてのjarファイルの私はクラスパスを設定したい(または参照したい)、このコマンドの前にjava -jar abc.jar $* -adminid $j_username
、?
こんにちは私は1つのタスクを実行している1つのシェルスクリプトを書いています。それを行うにはどのようにクラスパスを設定する
特にlibフォルダ内にあるすべてのjarファイルの私はクラスパスを設定したい(または参照したい)、このコマンドの前にjava -jar abc.jar $* -adminid $j_username
、?
set CLASSPATH=pathtojars1;pathtojars2
あなたのjavaコマンドの前。
または:それを行うには
java -classpath
どちらのシェル? Bourne Shellの派生物(Cシェルの派生物ではない)を使用していると仮定すると、 'set'コマンドはコマンドラインの引数をトラップします。 Cシェルの派生物では、CLASSPATH変数は設定されますが、エクスポートされません。 Bourne Shellの派生物では、 'CLASSPATH = path1:path2 java ...'と書くことができます。 Cシェルの派生物では、 'setenv CLASSPATH path1:path2'の後に' java'コマンドを続けて使います。 –
一つの方法は、次のようになります。
set CP=abc.jar:someother.jar
java -cp $CP your.main.Class $* -adminid $j_username
-jar
を使用しているときにクラスパス上の他のJAR /リソースを指定することはできませんのでご注意しながら、それは価値がありますすなわち-cp
スイッチは無視されますので、2つの間で選択する必要があります。
'set'表記は、Cシェルの派生語を使用する場合にのみ機能します。 Bourneシェル派生関数を使用している場合、コマンドはコマンドライン引数を壊し、 '$ *'は '$ CP'と等しくなります。これはあなたが望むものではありません。 –
NITピック実行しているとき
-jar
を使用しての がメイン クラスを指定組み込んだスタンドアロンJARの作成:使用を '」 '$ *'の代わりに$ @ "'を使います。スペースでユーザーが入力した引数を分割する場所はごくわずかですが、これがその1つである可能性は低いです。 –