如何退出启动java应用程序的Windows命令提示符

时间:2012-08-24 14:21:33

标签: java console cmd

如何在显示错误消息后退出简单Java程序的控制台?

目前我的代码有:

...
...
if (some condition){
//print error
System.exit();
...
...

但是这个System.exit();让控制台处于打开状态。我也尝试了exit(0);System.exit(0);

7 个答案:

答案 0 :(得分:2)

System.exit(1);

应该可以正常工作。请注意,如果您退出时出现错误,通常会设置非零退出代码。来自the doc

  

该参数用作状态代码;按照惯例,非零状态   代码表示异常终止。

这意味着您可以使用通用约定编写脚本,任何产生程序的过程都可以相应地做出反应等。

答案 1 :(得分:2)

如果您想要关闭运行应用程序的命令提示符窗口,那么我不相信有办法(至少不是很好)。

为什么要从命令提示符启动应用程序,然后关闭预先存在的命令提示符窗口?这肯定会消除您输出的错误消息(除非它也被记录 - 在这种情况下,为什么要将它打印到您要关闭的窗口?)。

这是特定于Windows的,但会在Windows资源管理器中创建一个快捷方式,以java -jar MyJarFile.jarjava 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表示“正常”退出)。如果它没有退出,那是因为你的代码部分无法访问而根本没有执行。

Java API - System.exit()