javaでlaunch()を複数回呼び出す方法「メインエラー:java.lang.IllegalStateException:アプリケーションの起動を複数回呼び出すことはできません」という例外が発生します
リクエストが来たときにjavafxを呼び出し、webview操作が完了した後にwebviewを開いて、Platform.exit()メソッドを使用してjavafxウィンドウを閉じているときに、Javaアプリケーションで残りのクレイントを作成しました。2 番目のリクエストが来ると、このエラーが発生します。このエラーを再処理する方法を教えてください。
JavaFx アプリケーション コード:
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 メソッド: JavaFX アプリケーションの呼び出し
// method 1 to lanch javafx
javafx.application.Application.launch(AppWebview.class);
// method 2 to lanch javafx
String[] arguments = new String[] {"123"};
AppWebview .main(arguments);