У меня есть интерактивная Java-программа, которая позволяет пользователю отправлять сообщения на сервер, который ведет себя как оболочка, принимает ввод клавиатуры пользователя и выполняет различные действия.Как правильно закрыть программу командной строки java
Например
myProgram> send "Login as James" to server
Моя программа будет анализировать ввод пользователя и выполнить действие, в данном случае, он будет посылать сообщение «Войти, как Джеймс» на сервер.
Одна из команд, которые я поддерживаю в своем «завершении», который закроет все подключения к серверу, очистит ресурсы и выключит приложение. и код для обработки этого выхода команда
private void shutdown()
{
closeAllConnection();
cleanup();
System.out.println("Thank you for using the tool, have a nice day!");
System.exit(0);
}
Когда я бегу findbug против моего кода, DM_EXIT ошибка возникает
Bug: new myProgram.messagingTools.main(String[]) invokes System.exit(...), which shuts down the entire virtual machine
Pattern id: DM_EXIT, type: Dm, category: BAD_PRACTICE
Invoking System.exit shuts down the entire Java virtual machine. This should only been done when it is appropriate. Such calls make it hard or impossible for your code to be invoked by other code. Consider throwing a RuntimeException instead.
и жалуется, что System.exit не следует использовать для завершения работы в программа.
У кого-нибудь есть предложение о том, как я должен «Завершить приложение, когда моя программа получит команду« quit »?
Если вы поместите вызов System.exit (0) в конце основного метода, то findbugs не жалуются на него. FindBugs просто говорит, что вызовы System.exit не должны быть в разных местах вашего кода. – Mack