在关闭java应用程序时运行.bat文件

时间:2010-04-14 09:35:27

标签: java batch-file

我想在关闭Java应用程序时运行.bat文件。

我试试,但是当我关闭Java应用程序时,bat文件无法启动。

4 个答案:

答案 0 :(得分:4)

您可能希望查看关闭挂钩。基本上你可以注册一个未启动的线程,它将在退出过程开始时由JVM启动。

Runtime.getRuntime().addShutdownHook(thread)

根据文件:

Java虚拟机关闭以响应两种事件:

  • 当最后一个非守护程序线程退出或调用退出(等效,System.exit)方法时,程序正常退出,或者
  • 虚拟机将响应用户中断(例如,键入^ C)或系统范围的事件(例如用户注销或系统关闭)而终止。

答案 1 :(得分:1)

我可以想到两个选择。

  1. 从一个批处理文件或ant文件中启动Java应用程序,然后在完成后自动运行另一个。
  2. 当您的应用程序使用java代码关闭时拦截,然后启动从Java运行的批处理文件作为子进程。如果您不想让应用程序等待,您可能需要使用特定于Windows的方法在退出后继续运行。
  3. 如果您的进程被终止,则只有1个可用。你现在是怎么做的,它怎么会失败?没有这些信息,我们无法帮助您。

答案 2 :(得分:0)

请仔细阅读 http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html。使用Runtime.getRuntime()。addShutdownHook(thread)来关联它。

答案 3 :(得分:0)

如果您的应用是扩展SingleFrameApplication的桌面应用,则可以覆盖其退出方法:public void exit(EventObject event)并添加代码以在那里启动您的文件。