java windows 上的后台应用程序

java background application on windows

我想在自己的 JVM 中有一个主应用程序和一个后台应用程序。
启动主程序时,它必须检查背景是否为 运行,如果不是,则启动它。
我将有多个电源 运行 但我只想要一个后台应用程序。
关闭所有电源后,后台保持运行就可以了。

第一次做后台应用,不懂:

我还处于设计阶段,欢迎任何意见或建议,即使是相关的。
如果您能提供示例代码或 link.

,我将不胜感激

据我了解,您正在寻找 SingleInstance 应用程序,您不希望终止它以执行某些后台进程?

我不明白第三个问题,但我会直接回答第一和第二个问题。

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{

        checkIfRunning(); //Check first if the Application is aready running.

        Parent root = FXMLLoader.load(getClass().getResource("fxml/main.fxml"));
        primaryStage.setTitle("Hello World");
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();

        Platform.setImplicitExit(false); //Prevent the Application from Terminating when it's close

    }

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


    /**The function for checking if the application is already running start here**/
    private static final int PORT = 9999;
    private static ServerSocket socket;
    private static void checkIfRunning() {
        try {
            //Bind to localhost adapter with a zero connection queue
            socket = new ServerSocket(PORT,0, InetAddress.getByAddress(new byte[] {127,0,0,1}));
        }
        catch (BindException e) {
            System.err.println("Application already running.");
            System.exit(1);
        }
        catch (IOException e) {
            System.err.println("Unexpected error when checking if application is already running.");
            e.printStackTrace();
            System.exit(2);
        }
    }
}

尝试一下,您会发现当您关闭应用程序时它仍然会 运行 并且您将无法启动多个应用程序。