如何在显示错误消息后退出简单Java程序的控制台?
目前我的代码有:
...
...
if (some condition){
//print error
System.exit();
...
...
但是这个System.exit();
让控制台处于打开状态。我也尝试了exit(0);
,System.exit(0);
。
答案 0 :(得分:2)
System.exit(1);
应该可以正常工作。请注意,如果您退出时出现错误,通常会设置非零退出代码。来自the doc:
该参数用作状态代码;按照惯例,非零状态 代码表示异常终止。
这意味着您可以使用通用约定编写脚本,任何产生程序的过程都可以相应地做出反应等。
答案 1 :(得分:2)
如果您想要关闭运行应用程序的命令提示符窗口,那么我不相信有办法(至少不是很好)。
为什么要从命令提示符启动应用程序,然后关闭预先存在的命令提示符窗口?这肯定会消除您输出的错误消息(除非它也被记录 - 在这种情况下,为什么要将它打印到您要关闭的窗口?)。
这是特定于Windows的,但会在Windows资源管理器中创建一个快捷方式,以java -jar MyJarFile.jar
或java MyCompiledClass
执行您想要的操作吗?可以找到这种方法的说明here。
答案 2 :(得分:1)
如果我理解正确,您希望在命令提示符下运行程序,如果程序失败,您希望它显示错误消息,关闭程序和commad提示窗口?
如果是这种情况,那么我唯一能想到的就是在批处理文件中运行程序,检查程序的退出状态。所以在你的代码中写下你的错误信息,然后我建议你睡几秒钟让用户真正看到它,然后退出状态码1.e.g。
if(SomeCondition){
System.err.println("ERROR MESSAGE...");
Thread.sleep(3000);//Sleep for 3 seconds...
System.exit(1);
}
然后从批处理文件中运行程序,该文件检查“ERRORLEVEL”环境变量,例如。
java <INSERT_PROGRAM_NAME>
IF %ERRORLEVEL% == 1 exit
希望这有帮助:)
答案 3 :(得分:0)
java.lang.System
没有没有参数的exit
方法,因此System.exit();
将是编译错误。 (System.exit(1);
但是,没关系。)你的代码不工作的原因可能是你没有重新编译它,所以你在添加该行之前仍然运行一些旧版本。< / p>
答案 4 :(得分:0)
假设您正在尝试从java
安装firefox .bat文件public static void main(String[] args) throws InterruptedException {
try {
String[] command = { "cmd.exe", "/C", "Start", "C:\\firefox.bat" };
Runtime.getRuntime().exec(command).waitFor();
}
catch (Exception e)
{
System.out.println("Execution error");
}
}
这将触发命令提示符,窗口将打开,直到您在安装firefox后手动关闭它。
修复是你的.bat文件刚刚在你的命令后面放了一个“退出”对于例如:
你的firefox.bat将包含
@Start / wait“Firefox”“C:\ Firefox Setup 41.0.exe”-ms
出口
这将关闭命令提示符窗口。希望这会有所帮助...
答案 5 :(得分:-1)
查看以下链接
http://www.cs.bris.ac.uk/jot/decisions/exercise11/exit.html
一般规定程序必须返回退出代码。退出代码应为零以指示成功,并且非零以指示失败。平台的不同之处在于不同的非零代码的含义,因此程序员通常只返回1作为失败的一般指示。
答案 6 :(得分:-1)
System.exit()的;终止JVM。 int是状态代码(0表示“正常”退出)。如果它没有退出,那是因为你的代码部分无法访问而根本没有执行。