我正在尝试使用 Java Web start(由 NetBeans 生成)部署 JavaFX 2 应用程序,我需要使用 JavaScript 将一些参数传递给我的应用程序。
第一个问题:这可能吗? 第二个问题:如果可以,我该怎么做。 :-)
我的 JNLP 文件是:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="MD.jnlp">
<information>
<title>MD</title>
<offline-allowed/>
</information>
<resources>
<jfx:javafx-runtime version="2.2+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="MD.jar" size="675286" download="eager" />
<jar href="lib/log4j-1.2.17.jar" size="519899" download="eager" />
</resources>
<security>
<all-permissions/>
</security>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="MD" >
<param name="requiredFXVersion" value="2.2+"/>
</applet-desc>
<jfx:javafx-desc width="800" height="600" main-class="com.blabla.MD" name="MD" >
<fx:param name="jmeno" value="hodnota"/>
</jfx:javafx-desc>
<update check="always"/>
</jnlp>
我的网页有这段代码:
<SCRIPT src="./web-files/dtjava.js"></SCRIPT>
<script>
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'MD.jnlp',
},
{
javafx : '2.2+'
},
{}
);
return false;
}
</script>
谢谢。 :-)
最佳答案
已解决:
function launchApplication(jnlpfile) {
dtjava.launch({
url: 'MD.jnlp',
params: {'name':'value'}
},
{
javafx: '2.2+'
},
{}
);
return false;
}
在 JavaFX 应用程序中,参数不在 String[] args 中,但您必须使用方法获取:
getParameters();
这记录在 JavaFX Deployment Guide documentation for the Java Deployment Tookit (dtjava.js) 中以及 JavaFX 应用程序 getParameters方法 JavaDoc。
关于JavaFX : Pass arguments from JavaScript to JNLP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634247/