You are trying to access the web browsing DOM before creating it.
Wrap your JavaApp related code with the page loader to achieve your goal:
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() { @Override public void changed(ObservableValue<? extends State> ov, State t, State t1) { if (t1 == Worker.State.SUCCEEDED) { JSObject window = (JSObject) webEngine.executeScript("window"); window.setMember("app", new JavaApp()); } } });
Sergey Grinev
source share