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);