【问题标题】:Java - Running several main methodJava - 运行几个主要方法
【发布时间】:2012-04-18 03:11:30
【问题描述】:

我有一个 Eclipse 项目重新组合了两个应用程序,我想自己运行第二个应用程序或从第一个应用程序运行,我通过简单地调用 main 方法来实现。 问题是当我从第一个应用程序启动第二个应用程序时,当我关闭第二个应用程序时,它也会关闭第一个应用程序。 我可以避免这种行为并保持第一个应用程序运行吗?

谢谢。

【问题讨论】:

  • 听起来第二个应用程序在某个时候调用了System.exit(),导致整个过程结束。没有更具体的数据很难给出建议……
  • “问题是当我启动第二个应用程序时.. 当我关闭第二个应用程序时,它也会关闭第一个应用程序。” 请参阅The Use of Multiple JFrames, Good/Bad Practice?

标签: java main


【解决方案1】:

您的第二个应用程序可能在关闭时发出System.exit。防止这种情况拖累调用应用程序的唯一方法是在单独的进程中启动它(例如通过ProcessBuilder.startRuntime.exec),或者通过自定义安全管理器捕获和阻止System.exit .

【讨论】:

  • 嘿@AndrewThompson - 我假设他不控制代码,或者他不会问这个问题。但你永远不知道。至于 NoExitSecurityManager,这就是我在上面的回答中所说的自定义安全管理器的意思。
  • 我的错。我误读了您的答案&这两个问题。 (得喝我的咖啡……)
  • 我确实控制了代码,但如果我不退出,第二个应用程序进程在它自己运行时不会终止。
  • 没有看到你的一些代码很难说管理这两个应用程序的生命周期有什么困难,特别是如果它们都在你的控制之下。您可能会尝试做的一件事是在独立模式下通过调用 main 打开第二个应用程序,但在“嵌入”模式下通过托管方法打开它。在独立模式下,您允许关闭应用程序功能执行 system.exit,但在嵌入式模式下您不允许。
  • 谢谢,我用 String[] 参数知道我是否执行 this.setDefaultCloseOperation(EXIT_ON_CLOSE);指令。
猜你喜欢
  • 2022-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
相关资源
最近更新 更多