So rufen Sie launch () in Java mehrmals auf

Wie man das launch () mehrmals in Java aufruft, wird mir eine Ausnahme wie "FEHLER IN MAIN: java.lang.IllegalStateException: Anwendungsstart darf nicht mehrmals aufgerufen werden" gegeben.

Ich habe einen Ruhezustand in meiner Java-Anwendung erstellt, wenn die Anforderung kommt, JavaFx aufzurufen und WebView zu öffnen, nachdem die WebView-Operation abgeschlossen wurde. Schließen Sie JavaFx-Fenster mit der Platform.exit () -Methode. Wenn die zweite Anfrage kommt, bekomme ich diesen Fehler, um diesen Fehler zu beheben.

JavaFx-Anwendungscode:

public class AppWebview extends Application  {

    public static Stage stage;

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

        stage = _stage;
        StackPane root = new StackPane();

        WebView view = new WebView();

        WebEngine engine = view.getEngine();
        engine.load(PaymentServerRestAPI.BROWSER_URL);
        root.getChildren().add(view);
        engine.setJavaScriptEnabled(true);
        Scene scene = new Scene(root, 800, 600);
        stage.setScene(scene);

        engine.setOnResized(new EventHandler<WebEvent<Rectangle2D>>() {
            public void handle(WebEvent<Rectangle2D> ev) {
                Rectangle2D r = ev.getData();
                stage.setWidth(r.getWidth());
                stage.setHeight(r.getHeight());
            }
        });

        JSObject window = (JSObject) engine.executeScript("window");
        window.setMember("app", new BrowserApp());

        stage.show();

    }

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

RestClient-Methode: Aufruf der JavaFX-Anwendung

// method 1 to lanch javafx
javafx.application.Application.launch(AppWebview.class);

// method 2 to lanch javafx
String[] arguments = new String[] {"123"};
AppWebview .main(arguments);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage