gpt4 book ai didi

java - 如何在 Mac 上启动 Java 应用程序并抑制控​​制台

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:50 24 4
gpt4 key购买 nike

我用 JAVA 编写了一个应用程序,并将其安装为通过 launchctl(基本上是 cron)运行。

我遇到的问题是每次工作启动时,我都会在菜单栏中短暂地看到“Java”,并且键盘控制权被夺走(再次短暂但足以惹恼)。

如何阻止应用程序执行此操作? launchctl 有什么我可以做的吗?我知道 launchctl 正在启动的其他应用程序没有表现出这种行为。

最佳答案

问题不在于 Mac 或 LaunchCtl。该问题与我安装到应用程序中的一些 JavaFX 有关。包含“main”的类由 javafx.application.Application 扩展。在我没有启动 UI 的情况下(它也可以 headless 运行),因为 JavaFX“应用程序”无论如何都会接管。

解决方案是创建另一个扩展“Application”的类。我仅在需要启动 UI 时实例化并运行该类。

这是应用程序的主要

之前公开课我的应用程序 扩展应用程序{

  @Override
public void start(Stage primaryStage)
throws IOException {
...
}

public static void main(String[] args)
throws Exception {
UIMain uiMain;
uiMain = new UIMain();

if (args.length == 0) {
uiMain.run(args);
} else {
// Even though there is no UI being launched it still popped "Java" in the toolbar here
...
}
}
}

之后(可能有更好的方法来做到这一点)

public class MyApp {

public static void main(String[] args)
throws Exception {
UIMain uiMain;
uiMain = new UIMain();

if (args.length == 0) {
uiMain.run(args);
} else {
// When this section runs I don't get the annoying Java pop in the Toolbar
...
}
}
public class UIMain
extends Application {

@Override
public void start(Stage primaryStage)
throws IOException {
...
}

public void run(String[] args) {
launch(args);
}

}

关于java - 如何在 Mac 上启动 Java 应用程序并抑制控​​制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com