2013-05-24 6 views
2

У меня есть пакет Java, который загадочно вызывает System.exit.Поиск байт-кода для звонков в System.exit

Есть ли способ статически проанализировать все байткоды в пути к классам, чтобы узнать, откуда можно звонить из System.exit?

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

+3

Почему, по вашему мнению, вызывается 'System.exit'? Может быть, выбрано исключение, которое не обрабатывается и выдает вашу партию. – Kai

+0

Я не на 100% уверен, но мы получаем код возврата 137 в нашем сценарии оболочки запуска, а добавление параметра -x в bash показывает, что JVM завершает код возврата 137. – Rich

+0

Если у вас есть доступ к файлам jar приложения вы можете просто [декомпилировать] (http://www.varaneckas.com/jad/), а затем искать 'System.exit' – Eugene

ответ

4

Я нашел это:

 
If you use Unix/Linux: 
Exit-code above 128 means that the process died because of a received 
signal (exitCode = 128 + signalNumber). 
==> In your case it was signal 9 (= SIGKILL). 

здесь: Understanding error - Java returned: 137

Так, может быть, кто-то kill эд вашу партию.

 Смежные вопросы

  • Нет связанных вопросов^_^