我是一个使用Java Web Start启动它的JavaFX应用程序。我试图将参数传递给它,但到目前为止我一直没有成功。我试着按照Deployment Toolkit中给出的示例进行操作。所以这就是我现在所处的一切。
HMTL:
<html>
<head>
<title>Parameter Testing</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h1>Parameter Passing Test</h1>
<script src="http://java.com/js/dtjava.js"></script>
<script>
function launchApplication() {
dtjava.launch({url: 'ParamTesting.jnlp', params:{order: "852237"}}, {jvm: '1.7.0_72+', javafx: '2.2+'}, {});
return false;
}
</script>
<a href='ParamTesting.jnlp' onclick="return launchApplication();">
<img src="images/jws-launch-button.png" width="88" height="23"/>
</a>
</body>
</html>
JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" xmlns:jfx="http://javafx.com" href="ParamTesting.jnlp">
<information>
<title>Param Testing</title>
<vendor>USGS</vendor>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always" />
<resources>
<j2se version="1.7.0_72+" href="http://java.sun.com/products/autodl/j2se" />
<jar href="ParamTesting.jar" main="true" version="0.1"/>
<property name="jnlp.versionEnabled" value="true"/>
</resources>
<application-desc name="ParamTesting"/>
<jfx:javafx-desc main-class="gov.usgs.tnm.paramtesting.MainApp" name="MainApp">
<fx:param name="order" value="852237"/>
</jfx:javafx-desc>
</jnlp>
JavaFX启动方法:
public void start(Stage stage) throws Exception {
System.out.println(getParameters().getNamed().get("order"));
Parent root = FXMLLoader.load(getClass().getResource("/fxml/Scene.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add("/styles/Styles.css");
stage.setTitle("Parameter Testing");
stage.setScene(scene);
stage.show();
}
每次我跑这个,&#34; null&#34;在控制台中打印出来。我无法弄清楚我哪里出错了。
此外,此应用程序确实有一个与之关联的订单系统,因此参数需要是动态的。如果有人对我如何能够实现这一目标有任何见解,那将非常感激。
答案 0 :(得分:0)
我发现了我的问题。我不需要JNLP中的application-describe元素。我不知道为什么在那里使用它会导致JavaFX程序无法访问参数,但确实如此。