Проблемы с Java JDBC (MySQL) для linux - работа Crontab вызывает сбой соединения в java-программе, но при запуске вручную это нормально

Хорошо, когда вы нажимаете «compress», вы увидите окно для выбора формата. Формат файла - последний выбранный формат.

1
задан 23 May 2011 в 22:53

16 ответов

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него очень важно получить большую часть кредита за помощь в поиске решения.

Так что, в основном, я работал над этой проблемой с разумом окон. Я понял, что, поскольку я установил CLASSPATH в Root (из которого crontab работал), что CLASSPATH будет определен. Однако для Linux это не так - crontab должен иметь набор CLASSPATH.

, который привел меня к:

В java-программе я заменил

}catch(Exception e){ e.printStackTrace(); }

с

}catch(Exception e){ ByteArrayOutputStream file = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(file); e.printStackTrace(stream); System.out.println("The result is :"+file.toString().trim()); }

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.

] Итак, к решению:

Создайте скрипт в /home/user/java, названный script1

script1:

#!/bin/bash export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.10.jar java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

Затем использовали sudo chmod 0755 /home/user/java/script1

- - - - -

Затем замените линию crontab:

30 14 * * * java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

с помощью:

30 14 * * * /home/user/java/script1
0
ответ дан 25 July 2018 в 21:52

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него очень важно получить большую часть кредита за помощь в поиске решения.

Так что, в основном, я работал над этой проблемой с разумом окон. Я понял, что, поскольку я установил CLASSPATH в Root (из которого crontab работал), что CLASSPATH будет определен. Однако для Linux это не так - crontab должен иметь набор CLASSPATH.

, который привел меня к:

В java-программе я заменил

}catch(Exception e){ e.printStackTrace(); }

с

}catch(Exception e){ ByteArrayOutputStream file = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(file); e.printStackTrace(stream); System.out.println("The result is :"+file.toString().trim()); }

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.

] Итак, к решению:

Создайте скрипт в /home/user/java, названный script1

script1:

#!/bin/bash export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.10.jar java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

Затем использовали sudo chmod 0755 /home/user/java/script1

- - - - -

Затем замените линию crontab:

30 14 * * * java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

с помощью:

30 14 * * * /home/user/java/script1
0
ответ дан 26 July 2018 в 17:26

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него очень важно получить большую часть кредита за помощь в поиске решения.

Так что, в основном, я работал над этой проблемой с разумом окон. Я понял, что, поскольку я установил CLASSPATH в Root (из которого crontab работал), что CLASSPATH будет определен. Однако для Linux это не так - crontab должен иметь набор CLASSPATH.

, который привел меня к:

В java-программе я заменил

}catch(Exception e){ e.printStackTrace(); }

с

}catch(Exception e){ ByteArrayOutputStream file = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(file); e.printStackTrace(stream); System.out.println("The result is :"+file.toString().trim()); }

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.

] Итак, к решению:

Создайте скрипт в /home/user/java, названный script1

script1:

#!/bin/bash export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.10.jar java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

Затем использовали sudo chmod 0755 /home/user/java/script1

- - - - -

Затем замените линию crontab:

30 14 * * * java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

с помощью:

30 14 * * * /home/user/java/script1
0
ответ дан 2 August 2018 в 03:28

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него очень важно получить большую часть кредита за помощь в поиске решения.

Так что, в основном, я работал над этой проблемой с разумом окон. Я понял, что, поскольку я установил CLASSPATH в Root (из которого crontab работал), что CLASSPATH будет определен. Однако для Linux это не так - crontab должен иметь набор CLASSPATH.

, который привел меня к:

В java-программе я заменил

}catch(Exception e){ e.printStackTrace(); }

с

}catch(Exception e){ ByteArrayOutputStream file = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(file); e.printStackTrace(stream); System.out.println("The result is :"+file.toString().trim()); }

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.

] Итак, к решению:

Создайте скрипт в /home/user/java, названный script1

script1:

#!/bin/bash export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.10.jar java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

Затем использовали sudo chmod 0755 /home/user/java/script1

- - - - -

Затем замените линию crontab:

30 14 * * * java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

с помощью:

30 14 * * * /home/user/java/script1
0
ответ дан 4 August 2018 в 19:25

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него очень важно получить большую часть кредита за помощь в поиске решения.

Так что, в основном, я работал над этой проблемой с разумом окон. Я понял, что, поскольку я установил CLASSPATH в Root (из которого crontab работал), что CLASSPATH будет определен. Однако для Linux это не так - crontab должен иметь набор CLASSPATH.

, который привел меня к:

В java-программе я заменил

}catch(Exception e){ e.printStackTrace(); }

с

}catch(Exception e){ ByteArrayOutputStream file = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(file); e.printStackTrace(stream); System.out.println("The result is :"+file.toString().trim()); }

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.

] Итак, к решению:

Создайте скрипт в /home/user/java, названный script1

script1:

#!/bin/bash export CLASSPATH=/usr/share/java/mysql-connector-java-5.1.10.jar java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

Затем использовали sudo chmod 0755 /home/user/java/script1

- - - - -

Затем замените линию crontab:

30 14 * * * java -cp $CLASSPATH:/home/user/java myprogram > /home/user/java/user_logfile.txt

с помощью:

30 14 * * * /home/user/java/script1
0
ответ дан 6 August 2018 в 03:36

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него важно получить большую часть кредита за помощь в поиске решения.


] Таким образом, в основном, я работал над этой проблемой с помощью системы Windows. Я полагал, что, поскольку я установил CLASSPATH в Root (из которого выполнялся crontab), будет определен CLASSPATH . Однако для Linux это не так - crontab должен иметь набор CLASSPATH .

, который привел меня к:

В java-программе я заменил catch

 } (исключение e) {e.printStackTrace ();  }  

с

 } catch (Исключение e) {ByteArrayOutputStream file = new ByteArrayOutputStream ();  PrintStream stream = новый PrintStream (файл);  e.printStackTrace (поток);  System.out.println («Результат:» + file.toString (). Trim ());  }  

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.


Итак, к решению:

Создайте скрипт в / home / user / java , названный script1

script1:

   #! / bin / bash export CLASSPATH = / usr / share / java / mysql-connector-java-5.1.10.jar java -cp $ CLASSPATH: / home / user / java myprogram & gt;  /home/user/java/user_logfile.txt  

Затем использовал sudo chmod 0755 / home / user / java / script1 , чтобы сделать его исполняемым.

- - - - -

Затем замените линию crontab:

  30 14 * * * java -cp $ CLASSPATH: / home /  user / java myprogram & gt;  /home/user/java/user_logfile.txt  

с:

  30 14 * * * / home / user / java / script1   
0
ответ дан 7 August 2018 в 21:25

Решение:

Намек Jukka о StackTrace подсказывал мне решение, поэтому для него важно получить большую часть кредита за помощь в поиске решения.


] Таким образом, в основном, я работал над этой проблемой с помощью системы Windows. Я полагал, что, поскольку я установил CLASSPATH в Root (из которого выполнялся crontab), будет определен CLASSPATH . Однако для Linux это не так - crontab должен иметь набор CLASSPATH .

, который привел меня к:

В java-программе я заменил catch

 } (исключение e) {e.printStackTrace ();  }  

с

 } catch (Исключение e) {ByteArrayOutputStream file = new ByteArrayOutputStream ();  PrintStream stream = новый PrintStream (файл);  e.printStackTrace (поток);  System.out.println («Результат:» + file.toString (). Trim ());  }  

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.


Итак, к решению:

Создайте скрипт в / home / user / java , названный script1

script1:

   #! / bin / bash export CLASSPATH = / usr / share / java / mysql-connector-java-5.1.10.jar java -cp $ CLASSPATH: / home / user / java myprogram & gt;  /home/user/java/user_logfile.txt  

Затем использовал sudo chmod 0755 / home / user / java / script1 , чтобы сделать его исполняемым.

- - - - -

Затем замените линию crontab:

  30 14 * * * java -cp $ CLASSPATH: / home /  user / java myprogram & gt;  /home/user/java/user_logfile.txt  

с:

  30 14 * * * / home / user / java / script1   
0
ответ дан 10 August 2018 в 09:43

Решение:

Намек Jukka о StackTrace подсказывал мне решение, так что большая часть его кредита помогает ему найти решение.


] Таким образом, в основном, я работал над этой проблемой с помощью системы Windows. Я полагал, что, поскольку я установил CLASSPATH в Root (из которого выполнялся crontab), будет определен CLASSPATH . Однако для Linux это не так - crontab должен иметь набор CLASSPATH .

, который привел меня к:

В java-программе я заменил catch

 } (исключение e) {e.printStackTrace ();  }  

с

 } catch (Исключение e) {ByteArrayOutputStream file = new ByteArrayOutputStream ();  PrintStream stream = новый PrintStream (файл);  e.printStackTrace (поток);  System.out.println («Результат:» + file.toString (). Trim ());  }  

, чтобы мой файл журнала фактически отображал вывод ошибки в файле журнала при запуске crontab.


Итак, к решению:

Создайте скрипт в / home / user / java , названный script1

script1:

   #! / bin / bash export CLASSPATH = / usr / share / java / mysql-connector-java-5.1.10.jar java -cp $ CLASSPATH: / home / user / java myprogram & gt;  /home/user/java/user_logfile.txt  

Затем использовал sudo chmod 0755 / home / user / java / script1 , чтобы сделать его исполняемым.

- - - - -

Затем замените линию crontab:

  30 14 * * * java -cp $ CLASSPATH: / home /  user / java myprogram & gt;  /home/user/java/user_logfile.txt  

с:

  30 14 * * * / home / user / java / script1   
0
ответ дан 13 August 2018 в 15:55

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по меньшей мере, трассировка стека исключений в стандартный поток ошибок и выход с ненулевым кодом выхода:

try { // your code here // ... } catch (Exception e) { e.printStackTrace(); System.exit(1); }

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вас.

1
ответ дан 25 July 2018 в 21:52
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по меньшей мере, трассировка стека исключений в стандартный поток ошибок и выход с ненулевым кодом выхода:

try { // your code here // ... } catch (Exception e) { e.printStackTrace(); System.exit(1); }

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вас.

1
ответ дан 26 July 2018 в 17:26
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по меньшей мере, трассировка стека исключений в стандартный поток ошибок и выход с ненулевым кодом выхода:

try { // your code here // ... } catch (Exception e) { e.printStackTrace(); System.exit(1); }

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вас.

1
ответ дан 2 August 2018 в 03:28
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по меньшей мере, трассировка стека исключений в стандартный поток ошибок и выход с ненулевым кодом выхода:

try { // your code here // ... } catch (Exception e) { e.printStackTrace(); System.exit(1); }

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вас.

1
ответ дан 4 August 2018 в 19:25
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по меньшей мере, трассировка стека исключений в стандартный поток ошибок и выход с ненулевым кодом выхода:

try { // your code here // ... } catch (Exception e) { e.printStackTrace(); System.exit(1); }

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вас.

1
ответ дан 6 August 2018 в 03:36
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по крайней мере, трассировка стека исключений для стандартного потока ошибок и выход с ненулевым кодом выхода:

  try {// ваш код здесь // ...} catch (исключение e) {e  .printStackTrace ();  System.exit (1);  }  

Кроме того, убедитесь, что доставка почты настроена правильно, так что вы получите письма, которые cron отправляет вам.

1
ответ дан 7 August 2018 в 21:25

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по крайней мере, трассировка стека исключений для стандартного потока ошибок и выход с ненулевым кодом выхода:

  try {// ваш код здесь // ...} catch (исключение e) {e  .printStackTrace ();  System.exit (1);  }  

Кроме того, убедитесь, что доставка почты настроена правильно, чтобы вы получили письма, которые отправляет cron.

1
ответ дан 10 August 2018 в 09:43

Cron отправит вам результат всех заданий, которые он запускает, поэтому убедитесь, что при сбое ваша программа выводит достаточно информации, чтобы вы могли диагностировать проблему.

Когда ваша ваша программа Java выходит из строя, напечатайте на по крайней мере, трассировка стека исключений для стандартного потока ошибок и выход с ненулевым кодом выхода:

  try {// ваш код здесь // ...} catch (исключение e) {e  .printStackTrace ();  System.exit (1);  }  

Кроме того, убедитесь, что доставка почты настроена правильно, чтобы вы получили письма, которые отправляет cron.

1
ответ дан 13 August 2018 в 15:55
  • 1
    Задача cron выполняется успешно, насколько я знаю, однако то, что меня озадачивает, заключается в том, что программа, выполняемая ТОЛЬКО, не работает при запуске cron, а не при запуске вручную ... Я попробую строку printStackTrace и посмотрю, приведет ли это к каким-либо результатам – Jason 23 May 2011 в 22:02
  • 2
    Собственно, я еще раз взглянул на свой код, и у меня уже есть e.printStackTrace (); линия в нем для улова, однако ничего не распечатывается ... – Jason 23 May 2011 в 22:11
  • 3
    @ALL - проверьте нижнюю часть моего сообщения, используя совет Jukka. Я нашел способ отправить stacktrace для println и смог получить очень полезный вывод ошибки из этого! – Jason 23 May 2011 в 22:41

Другие вопросы по тегам:

Похожие вопросы: