запланировать работу в Unix crontab

1

Я создал простую java-программу для печати "Hello world". код выглядит следующим образом

public class Hello {

    public static void main(String[] args) {

        System.out.println("Hello world!");
    }

}

Класс уже скомпилирован и находится в том же каталоге. В том же каталоге я создал файл оболочки с именем temp.sh, который содержит команду

java Hello

теперь, если я запустил этот файл оболочки, программа java выполняется успешно. Я написал cronjob для его выполнения каждую минуту

* * * * * /home/ashutosh/Documents/javaPractice/temp.sh >> /var/log/myjob.log 2>&1

теперь в моих журналах он показывает

could not load main class java 

Я не знаю, в чем проблема. Я попытался дать абсолютный путь к файлу java, но ничего не помогло. Помоги мне.

благодаря

Теги:
cron

5 ответов

1
Лучший ответ

Ваша проблема в том, что рабочий каталог cronjob не является каталогом, в котором находится ваш класс. Итак, добавьте cd the_right_directory в скрипт или измените путь к java с чем-то вроде java -cp some_directory Hello

1

Внутри temp.sh попробуйте использовать полный путь:

java /home/ashutosh/Documents/javaPractice/Hello
0

Вы должны установить переменные среды в вашем файле сценария, что-то вроде CLASSPATH. Или просто исходный.profile, прежде чем запускать скрипт. См. Https://unix.stackexchange.com/questions/27289/how-can-i-run-a-cron-command-with-existing-environmental-variables.

0

используйте java -cp./Hello чтобы запустить программу. -cp./ добавить текущий каталог в -cp./ к классам.

0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню