在执行crontab时,JAR文件未从Scanner(System.in)读取输入




我已经创建了一些应用程序,它正在使用以下方法从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

在我的机器(Ubuntu9(上一切都很好,但在另一台机器Ubuntu8上安装后,我发现程序启动了,但似乎什么都没读。我已经三次检查了所有配置和所有权限,结果仍然相同。当我手动运行命令时,一切都在工作,当它由crontab运行时,它似乎并没有读取输入。以前有人经历过这种问题吗?

感谢您的帮助
Serhiy。

您是否在crontab中定义变量?这似乎不对。

1( 将命令移动到shell脚本中,并从cron(例如(调用shell命令

*/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

相关内容

最新更新