0

これがかなり単純であることを願っていますが、これを機能させるのに苦労しています。

シェルスクリプトコマンドを使用して実行したいJavaパッケージがあります...

/jdk1.7.0/bin/java .path.to.classname.ClassToExecute >> /var/log/output.log

...本質的に...

./SCRIPT_NAME

...コマンドラインから上記を実行する必要があります。

問題は、セッションが特定の JAR を参照できるようにするために、最初にコマンドラインから毎回必要なクラスパスの更新があることです...

export CLASSPATH=$CLASSPATH:/path/to/jar/file/lib/JAR_NAME.jar:.

この行を最初に入れないと、シェル スクリプトは、手動で追加する必要がある JAR に関連する NoClassDefFoundError のスロー エラーを実行しません。

このクラスパスの更新を編集する必要がある場所を誰かに教えてもらえますか?

ありがとう、ForestSDMC

4

2 に答える 2

0

シェル スクリプトは次のようになります。

#!/bin/bash
export CLASSPATH=$CLASSPATH:/path/to/jar/file/lib/JAR_NAME.jar:. 
/jdk1.7.0/bin/java .path.to.classname.ClassToExecute >> /var/log/output.log 

また、実行可能になるようにスクリプトの権限を変更する必要があります

chmod 700 SCRIPT_NAME

700 = 所有者のみがスクリプトを実行できます 770 = 所有者とグループのメンバーがスクリプトを実行できます 777 = サーバーにアクセスできるすべてのユーザーがスクリプトを実行できます。

これを cron から実行したいことに気付きました。crontab エントリまたはスクリプト内から .​​profile を入手する必要があります。

于 2012-07-20T17:57:12.143 に答える
0

答えが見つかり、うまく動作するので、うまくいけば他の人がこれを役に立つと思うでしょう...

シェル スクリプト内でクラスパス変数を動的に生成し、属性として Java コマンド ライン実行に適用できます。このような...

THE_CLASSPATH=
for i in `ls /path/to/the/JARS/lib/*.jar`
do
  THE_CLASSPATH=${THE_CLASSPATH}:${i}
done

/usr/bin/java -cp ".:${THE_CLASSPATH}" path.to.the.class.ClassName >> /var/log/logfile.log
于 2012-07-20T18:00:08.413 に答える