JAR файлы crontab орындалуындағы Scanner (System.in) ішінен кірісті оқымайды


I have created some application, which is reading from System.in using the following method:

    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 арқылы жүгіргенде, ол кіріспейді. Кез-келген адам осы мәселелерді бұрын-соңды көрді ме?

Кез келген көмек үшін рахмет Серхий.

0

1 жауаптар

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
2
қосылды
Сценарийден қолмен жұмыс істеп жатыр, қазір/bin/cat-ды орнатуға тырысады.
қосылды автор Serhiy, көзі
Қосылған/bin/cat көмектесті! Рахмет жігіттер;) және соншалықты болмауы үшін кешірім сұраймын: D
қосылды автор Serhiy, көзі
Жақсы нәрсе Майк!
қосылды автор bubbly, көзі
Сонымен қатар, сценарийде cat орнына /bin/cat көрсетіңіз. Cron арқылы басқарылатын скрипттер әдетте сценарийге нақты енгізілгеннен басқа ортаны орнатпайды ($ PATH қоса).
қосылды автор Mike, көзі