有没有办法找出Javafx2应用程序的启动方式?
即。是通过网络启动链接启动还是通过桌面快捷方式启动?
我需要知道应用程序是从Web启动还是桌面图标启动的原因是,通过JNLP传递了一些参数,当从桌面图标启动时应用程序不会使用这些参数,并且没有办法(我知道)应用程序会知道这些参数是否未通过。
任何指针都会有所帮助。
答案 0 :(得分:0)
AFAIK,没有好方法,你需要使用运行模式的副作用。
您可以选择使用下一个:
见下一段代码:
Pane root = new VBox(5);
boolean gotSecurityManager = System.getSecurityManager() != null;
boolean gotWebContext = getHostServices().getWebContext() != null;
root.getChildren().addAll(
new Label("desktop = " + (!gotSecurityManager && !gotWebContext)),
new Label("jnlp = " + (gotSecurityManager && !gotWebContext)),
new Label("applet = " + gotWebContext)
);
Scene scene = new Scene(root, 500, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
另一个选项是Can I find out if the java program was launched using java or javaw
答案 1 :(得分:0)
(我)..一次(第一次)只能从桌面图标启动不?
是的,这是正确的。
行。这是可行的。
在代码中,使用JNLP API的PersistenceService
检查密钥/值(例如has-run-once
/ true
)。如果不存在,请使用JNLP中定义的属性并设置值。