
Igor
17.01.2018
11:51:47
завязывайте офтоп

Evgeniy
17.01.2018
11:52:28
Хочу сделать нормальный таск менеджер для Android. Конкурентов нет

Igor
17.01.2018
11:52:46

Vitalii
17.01.2018
11:54:34
Похоже, кто-то вкинул эту ссылку в улей для "есть идея, нужен раб и бабки".

Google

Alexey
17.01.2018
11:56:17

Evgeniy
17.01.2018
11:57:33
Всем спасибо. Если есть интересующиеся, пишите в личку

Artjom
17.01.2018
11:58:02
Есть идея - вам 10% за реализацию =)

YaOurTea
17.01.2018
11:58:25


Mikhail
17.01.2018
12:05:39
привет всем
есть jar-файл который занимается отправкой email-уведомлений
он выполняется cron'ом по расписанию (ос - центос)
есть рабочий стенд и стенд у заказчика
логирование внутри приложения сделано через System.out
первая же строка в main'е пишет инфу о том что приложение стартануло.
поток вывод перенаправлен на файл, чтобы писать логи
так вот сервис прекрасно работает на нашем рабочем стенде, но на стенде у заказчика не отрабатывает и не генерит логи вообще т.е. получается что в main он вообще не заходит.
я перенаправил поток ошибок в поток вывода и лог приложения появился
в нем указан только тип исключения без стектрейса - NullPointerException.
сверил версии java, jvm и jre - они одинаковые вплоть до билда.
получается, что он кидает NullPointer при попытке стартануть приложение и до main'а не доходит вовсе.
в манифесте точка входа указана корректно
есть идеи - что еще можно сверить?
все осложняется тем, что к стенду заказчика нет доступа, есть лишь возможность письмами делать запросы на информацию, которую хочется получить


Cargeh
17.01.2018
12:13:39


Mikhail
17.01.2018
12:14:13

Cargeh
17.01.2018
12:14:35

Artjom
17.01.2018
12:15:04
System.out как логирование звучит как анти-паттерн )

Mikhail
17.01.2018
12:15:10
очевидно что код
main {
System.out.print("11")
}
в поток вывода запишет результат если зайдет в main

Igor
17.01.2018
12:15:25
я бы первом делом проверил доступ к файлу, куда пытается писать логи

Mikhail
17.01.2018
12:15:40

Google

Alexander
17.01.2018
12:16:03

Nick
17.01.2018
12:16:14
народ, а никто случаем не видел тулзы, которая по эксельнику генерит java код для poi для построения такой страницы как в имеющемся эксельнике?

Mikhail
17.01.2018
12:17:51
это лежит в sh файле
который дергается кроном через exec

Alexander
17.01.2018
12:23:48
а никаких там статик секций нет, или может в конструкторе с npe падает ? странно что стек-трейс полный не падает в файл. я бы может заменил запуск на
java -jar <путь к jar> <входной параметр> &> <адрес файла с логом>
так-то не особо понятно

Mikhail
17.01.2018
12:26:17
А в чем разница?

Alexander
17.01.2018
12:27:46
да казалось бы и то и то должно работать, но я как-то ловил проблему с 2>&1 и переделал на &>
но у меня был древний баш на солярке

Alexander
17.01.2018
12:29:14
а до мейна в статической инициализации есть работа какая-то с пропертями например? может ли быть там нпе?

Mikhail
17.01.2018
12:29:45

Alexander
17.01.2018
12:30:21

Alexander
17.01.2018
12:30:25
ну типа private static final String shit = System.getProperty("shit").toUpperCase(); например
ну без стек трейса есть два момента, первое - скорее всего его еще нет

Mikhail
17.01.2018
12:31:10

Alexander
17.01.2018
12:31:17
второе это конечно омитстек трейс
он он инфасттроу

Mikhail
17.01.2018
12:31:43

Alexander
17.01.2018
12:31:46
ну то есть там должно быть крайне много эксепшнов

Google

Alexander
17.01.2018
12:32:04
эксепшны не кастомайзились?

Mikhail
17.01.2018
12:32:42
тут вообще утилитка на 3 класса
казалось бы - чему тут умирать

Alexander
17.01.2018
12:33:02
а джарник - fat-jar ?

Alexander
17.01.2018
12:33:31
так
падажи
а выводится в аут как?
e.printStackTrace?
или sout.println(e)?

Mikhail
17.01.2018
12:34:04

Mikhail
17.01.2018
12:35:49
а выводится в аут как?
так он не из моего лога ошибка валит
а при именно запуске утилиты
я пока поток ошибок в поток вывода через 2>&1 не переправил - лог ваще пустой был

Cargeh
17.01.2018
12:36:59
я просто понять не могу, почему так трудно прикрутить нормальные логи (которые, возможно, укажут на проблему внутри инициализации либ) и собрать fatjar?

Alexander
17.01.2018
12:38:24
а если там джарник голый, то где в строке запуска CP задается ?

Mikhail
17.01.2018
12:39:05

Alexander
17.01.2018
12:40:14

Mikhail
17.01.2018
12:40:32
но к сожалению ответов я не получу

Google

Nikita
17.01.2018
12:41:41
http://www.oracle.com/technetwork/articles/javase/vmoptions-jsp-140102.html
Debugging Options
-XX:ErrorFile=./hs_err_pid<pid>.log
можт чего более подробного выдаст, чем просто NPE?

Admin
ERROR: S client not available

Mikhail
17.01.2018
12:42:10

Alexander
17.01.2018
12:43:35

Nikita
17.01.2018
12:47:24

Alexander
17.01.2018
12:47:34
а кстати что-то до мейнметода может послужить нпешечкой для жабки описанное в манифесте

Mikhail
17.01.2018
12:50:34

Alexander
17.01.2018
12:50:56
вспоминая некоторые истории, там джаник на проде и тут и все либы они одинаковые ? вплоть до чек-сумм ? md5sum смотрели ?

Mikhail
17.01.2018
12:51:16

Alexander
17.01.2018
12:51:30
я как-то ловил смешную проблему что чуваки грузили бинари через winscp который их тупо корраптил

Alexander
17.01.2018
12:51:58
а компилили с дебуг инфой?

Mikhail
17.01.2018
12:53:24

Alexey
17.01.2018
12:54:11
Версия JVM совпадает?

Mikhail
17.01.2018
12:54:16
вплоть до билда

Alexey
17.01.2018
12:54:21
С точностью до билда?

Alexander
17.01.2018
12:55:59
так, если первой строчкой в мейне есть аутпут и ее нет, то значит проблема в статическом контексте до мейна, ну как вариант это инициализатор static {} импорты и их статический контекст
отсюда и смотрим

Alexey
17.01.2018
12:56:39
Проблемы с ФС проверили уже?

Google

Alexander
17.01.2018
12:56:56
еще вариант - каким-то образом манифест кривой.

Alexander
17.01.2018
12:56:59
а какая может быть проблема с фс?

Alexey
17.01.2018
12:57:00
Если System.out недоступен, будет так же NPE

Alexander
17.01.2018
12:57:21
и куда он выведется?

Mikhail
17.01.2018
12:57:23
почему он может быть недоступен?

Alexander
17.01.2018
12:57:27
в аутпут?
который недоступен?

Alexey
17.01.2018
12:57:52
В System.err :)

Alexander
17.01.2018
12:58:10
ну вот чтобы sout не работал - это я не видел. а как-то раз на какой-то виртуалке юзеру не дали права на запись в /dev/null.

Alexander
17.01.2018
12:58:27
кстати