你可以使用System.exit()来达到这个目的。

根据oracle的Java 8文档:

public static void exit(int status)

终止当前运行的Java虚拟机。 这个论点是一个状态码。 按照惯例, 非零状态码表示exception终止 。

此方法在类Runtime中调用exit方法。 此方法从不正常返回。

呼叫System.exit(n)实际上等同于呼叫:

Runtime.getRuntime().exit(n)

System.exit(0);

“0”让任何叫你的程序的人知道一切正常。 但是,如果由于错误而退出,则应该System.exit(1); ,或与特定错误对应的另一个非零数字。

另外,正如其他人所说,先清理! 这涉及到closures文件和其他开放资源。

System.exit(int i)被使用,但是我将它包含在一个更通用的shutdown()方法中,在那里你还要包括“清理”步骤,closures套接字连接,文件描述符, 然后用System.exit(x) 。

System.exit()通常不是最好的方法,但它取决于你的应用程序。

结束应用程序的常用方法是退出main()方法。 当有其他非deamon线程正在运行时,这是行不通的,就像通常用于具有graphics用户界面(AWT,Swing等)的应用程序一样。 对于这些应用程序,您可以find一种方法来结束GUI事件循环(不知道AWT或Swing是否可能)或调用System.exit() 。

我同意Jon的观点,让你的应用程序对某事做出反应,然后调用System.exit()。

请确保:

您使用适当的退出值。 0是正常退出,其他任何表示有错误

您closures所有input和输出stream。 文件,networking连接等

你logging或打印退出的原因,特别是如果由于错误

使用dispose(); 是closures你的程序的一个非常有效的方法。

我发现使用System.exit(x)重置交互窗格,并假设您需要一些信息,它们都消失了。

答案是System.exit(),但不是一件好事情,因为这会中止程序。 任何清理,破坏你打算做的事情都不会发生。

这个问题有两个简单的答案。

这是“专业方式”:

//This just terminates the program. System.exit(0);

这是一个更笨拙的方式:

//This just terminates the program, just like System.exit(0). return;

Runtime.getCurrentRumtime().halt(0);

System.exit()会做你想做的。 但在大多数情况下,您可能想要退出一个线程,并保持主线程活着。 通过这样做,您可以终止一个任务,但也保持启动另一个任务的能力,而无需重新启动应用程序。

System.exit(ABORT); 马上退出这个过程。

这应该以正确的方式进行:

mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); mainFrame.addWindowListener(new WindowListener() { @Override public void windowClosing(WindowEvent e) { if (doQuestion("Really want to exit?")) { mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.dispose(); } }

java中如何主动退出程序_如何从程序中退出Java应用程序相关推荐

  1. .Net 6.0中的新增特性_.Net 6.0中的新增功能

    .Net 6.0中的新增特性_.Net 6.0中的新增功能 一..Net 6 介绍 .NET 6 作为 LTS 长期支持版本,.NET 6 将会获得 3 年的技术支持. .NET 6 是首个原生支持 ...

  2. css如何保留空格,HTML/CSS中的空格处理_如何保留页面中的空格

    html中的空格的规则 在html中内容中的多个空格一般会被视为一个,连续的多个空格符被自动合并了.同时内容前后的空格也会被清除, 如下: fly63 com 显示效果为: fly63 com 备注: ...

  3. amp jsp空格 nps_HTML/CSS中的空格处理\_如何保留页面中的空格【转】

    HTML/CSS中的空格处理\_如何保留页面中的空格[转] HTML中的空格的规则 在html中内容中的多个空格一般会被视为一个,连续的多个空格符被自动合并了.同时内容前后的空格也会被清除, 如下: ...

  4. java面试换背景颜色_实习|渣二本Java菜鸡0 Offer的春招血泪史,一定要主动去找实习呀!

    作者:codingCoge 链接:https://www.nowcoder.com/discuss/177823 来源:牛客网 前言: 一个菜鸡的春招血泪史,共勉 到现在还是0offer 先玄学求一波 ...

  5. 下面哪种不是java语言的注释写法_下列哪项不是Java语言中所规定的注释样式?()...

    [单选题]下列声明和赋值语句错误的是() [单选题]Java语言中表达式"11"+22的结果是() [单选题]以下表达式语句不合法的是() [判断题]3. 教育活动是在教师有目的. ...

  6. java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...

    A final变量意味着它只能被实例化一次.在Java中,您不能在lambda和匿名内部类中使用非最终变量. 您可以使用旧的for-each循环重构代码:private TimeZone extrac ...

  7. 用Java代码实现日志记录器_如何在此简单的Java日志记录实现中附加到日志文件? - java...

    我得到了以下用于创建和管理Logger的类.每当执行代码和程序时,都会使用对静态getLogger()捕获块的调用进行记录. public class Log { private static fin ...

  8. java hibernate sqlserver自增_怎样在hibernate中实现oracle的主键自增策略?

    Oracle数据库索引和SQLServer的阐述 Oracle常见表结构 oracle数据库约束条件删除.取消.启用 在很多情况下,我们使用Hibernate在已经建立好数据库的基础上.在oracle ...

  9. java中解密的思想_北大青鸟翔天解密,Java核心思想两大点

    Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.对核心概念和思想的掌握可以帮助我们举一反三.触类旁通,有助于提升我们对整个J ...

最新文章

  1. 蓝桥杯知识点归纳-java-API
  2. 浅谈强化学习的方法及学习路线
  3. python装饰器原理-python装饰器原理与用法深入详解
  4. salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found....
  5. sklearn自学指南(part27)--邻域成分分析
  6. TypeError: 'MongoClient' object is not callable
  7. [原]好玩的Linux,关于时间cal命令
  8. 微软开放Xbox 360游戏开发平台
  9. [Linux] 解决virtualbox共享文件夹没有访问权限的问题
  10. linux执行定时,linux定时执行 - 乄珍惜
  11. 盘点(腾讯字节谷歌等大厂)面试中常见的智力题
  12. 读《明朝那些事》有感
  13. html清除span的text,使用jquery删除字符串中的span标签
  14. 后端程序员生产力工具合集
  15. Java调用SMS短信通API实现发短信功能
  16. python递推公式_线性代数求解递推形式数列的通项公式
  17. echarts动态渲染柱状图背景颜色以及顶部数值
  18. 灰度直方图与特征直方图的使用方法
  19. HTTP headers(HTTP头)
  20. cisco路由器的时间标记

热门文章

  1. 推荐两个Android手机上比较好用免费的SSH客户端APP
  2. 二分查找算法(Python)
  3. 2022-2028全球咨询服务行业调研及趋势分析报告
  4. uniapp-微信小程序定位(授权定位)
  5. Hexo+yilia+Github实现相册功能(超详细)
  6. RTX DLSS
  7. 查看数据库锁表以及解锁
  8. python: missing 1 required positional argument: ‘self‘
  9. String转Map
  10. 碧蓝航线维护服务器时间,碧蓝航线异色格维护公告 异色格活动结束时间介绍...