0


次の方法を使用してSystem.inから読み取るアプリケーションを作成しました。

    Scanner input = new Scanner(System.in);

    while (input.hasNextLine()) {

        String line = input.nextLine();

    }

入力データはlinuxコマンドで渡されています:

cat -A /home/someuser/somefile.txt | java -classpath "$CLASSPATH" com.test.Main

crontabエントリは次のようになります。

MAILTO=someuser
CLASSPATH="/home/someuser/test.jar:/usr/share/java/jdom.jar:/usr/share/java/mysql-connector-java.jar"

0,10,20,30,40,50 * * * * cat -A /home/someuser/somefile.txt | java -classpath "$CLASSPATH" com.test.Main  >/home/someuser/output.txt

ファイルの権限は次のとおりです。

-rw-r--r-- 1 someuser serhiy 8385601 2011-02-07 10:57 /home/someuser/somefile.txt

私のマシン(Ubuntu 9)ではすべて正常に動作していますが、別のマシンUbuntu 8にインストールした後、プログラムが起動することがわかりましたが、何も読み取っていないようです。すべての構成とすべてのアクセス許可をトリプルチェックしましたが、結果は同じです。コマンドを手動で実行するとすべてが機能しますが、crontabで実行すると、入力を読み取っていないようです。誰かが以前にこの問題を経験しましたか?


Serhiyの助けに感謝します。

4

1 に答える 1

2

crontabで変数を定義していますか?それは正しくないようです。

1)コマンドをシェルスクリプトに移動し、cronからシェルコマンドを呼び出します。例:

*/10 * * * * /home/someuser/some_script.sh >/home/someuser/some_script.cronoutput 2>&1

2)some_script.shの内容; 実行ビットが設定されていることを確認してください

#!/bin/sh
export MAILTO=someuser  
export CLASSPATH="/home/someuser/test.jar:/usr/share/java/jdom.jar:/usr/share/java/mysql-connector-java.jar"  

cat -A /home/someuser/somefile.txt | java -classpath "$CLASSPATH" com.test.Main  >/home/someuser/output.txt
于 2011-10-28T16:43:00.560 に答える