JavaFX:将参数从JavaScript传递到JNLP

JavaFX:将参数从JavaScript传递到JNLP,java,javascript,jnlp,argument-passing,Java,Javascript,Jnlp,Argument Passing,我正在尝试使用JavaWebStart(由NetBeans生成)部署JavaFX2应用程序,我需要使用JavaScript向我的应用程序传递一些参数 第一个问题:这可能吗? 第二个问题:如果可能的话,我怎么做 我的JNLP文件是: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="MD.jnlp"> <information>

我正在尝试使用JavaWebStart(由NetBeans生成)部署JavaFX2应用程序,我需要使用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>

函数启动应用程序(jnlpfile){
dtjava.launch({
url:'MD.jnlp',
},
{
javafx:'2.2+'
},
{}
);
返回false;
}
Thx.:-)

第一个问题:这可能吗

是的,一般来说是可能的。我做过类似的事情,但不是直接从JavaScript到JNLP

第二个问题:如果可能的话,我怎么做

在我的场景中,我只做了JNLP部分,没有做JS部分。但要这样想:用户通过一个社交网络(涉及JS)登录网页。JS和Ajax将所需的值传递给服务器端,并将用户重定向到部署JNLP小程序的页面

在服务器端有一个jnlp文件模板:

<fx:param name="jmeno" value="{value}"/>

然后,由于服务器通过Ajax获得了一个值,它可以使用PHP或JSP生成适当的jnlp文件,并将其提供给用户的浏览器。

解决:

function launchApplication(jnlpfile) {
            dtjava.launch({
                url: 'MD.jnlp',
                params: {'name':'value'}
            },
            {
                javafx: '2.2+'
            },
            {}
            );
            return false;
        }
在JavaFX应用程序中,参数不在字符串[]args中,但您必须使用以下方法获取:

getParameters();

这在以及JavaFX应用程序方法JavaDoc中都有记录。

是否可以将数组作为参数而不是字符串传递?