如何在java中多次调用launch()我得到一个异常“主错误:java.lang.IllegalStateException:应用程序启动不能被多次调用”
当请求到来时,我在我的 java 应用程序中创建了 rest cleint,它调用 javafx 并在完成 webview 操作后打开 webview,正在使用 Platform.exit() 方法关闭 javafx 窗口。当第二个请求到来时,我收到此错误,如何解决此错误。
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);