2010-01-29 2 views
2

У меня есть приложение C#, которое запускает файл jar и использует код System.exit в качестве возвращаемого значения. Консольное окно отображается как часть этой банки, и если пользователь закрывает его (тем самым заканчивая банку), он возвращает код выхода 143. Проблема в том, что 143 (или любое положительное целое число) может быть допустимым кодом выхода, если банка успешно завершена.Установка стандартных кодов System.exit в Java?

Мне нужен способ вручную установить код System.exit в отрицательное целое число. Рассмотрение 143 в качестве исключения в приложении C# не может быть и речи.

ответ

2

Как и в Диего Диас answer,

Аргументом служит кодом состояния; по соглашению, отличный от нуля код состояния указывает на ненормальное завершение.

Если вы действительно хотите, чтобы игнорировать это, и как Java и C# приложения в руке, простое решение, чтобы добавить 1000 к вашему System.exit возвращаемого значения в Java, когда баночка завершается.

Ваше приложение C# распознает успешное выполнение кодом возврата >= 1000 и вычитает его снова. 143 ниже 1000 и, следовательно, ошибка.

+0

Поскольку у меня есть код Java и C#, это тривиальное исправление для реализации. Показывает, что иногда самое простое решение - лучшее. – sgtFloyd

1

В соответствии с java documentation вы можете использовать System.exit (int n), поэтому просто поместите отрицательное число в качестве параметра, также, как правило, ненулевой код состояния указывает на ненормальное завершение.

+0

Я уже могу вернуть правильные коды с помощью System.exit(), если jar завершает работу, но если пользователь преждевременно завершает банку, я не могу контролировать, что возвращается. – sgtFloyd

+0

Итак, ваша проблема другая ... Вам нужно идентифицировать событие «закрыть или закрыть» в своем приложении и выбросить исключение, которое могло бы использовать system.exit –

+0

Я тоже думал об использовании отрицательного числа, но некоторые системы не могут обрабатывать это (например, OSX) –