3

Java Web start(NetBeansによって生成された)を使用してJavaFX 2アプリをデプロイしようとしていますが、JavaScriptを使用してアプリにいくつかの引数を渡す必要があります。

最初の質問:それも可能ですか?2番目の質問:可能であれば、どうすればよいですか。:-)

私の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>

どうも。:-)

4

2 に答える 2

3

解決済み:

function launchApplication(jnlpfile) {
            dtjava.launch({
                url: 'MD.jnlp',
                params: {'name':'value'}
            },
            {
                javafx: '2.2+'
            },
            {}
            );
            return false;
        }

JavaFXアプリでは、パラメーターはString [] argsにありませんが、メソッドを使用して取得する必要があります。

getParameters();

これは、Java Deployment Tookit(dtjava.js)のJavaFX Deployment Guideのドキュメント、およびJavaFXアプリケーションのgetParametersメソッドJavaDocに記載されています。

于 2013-03-26T17:47:01.700 に答える
1

最初の質問:それも可能ですか?

はい、一般的には可能です。私は似たようなことをしましたが、JavaScriptからJNLPに直接ではありません。

2番目の質問:可能であれば、どうすればよいですか。:-)

私のシナリオでは、JSではなくJNLP部分のみを実行しました。しかし、このように考えてください。ユーザーは、ソーシャルネットワークの1つを介してWebページにログインします(JSが関与します)。JSとAjaxは必要な値をサーバー側に渡し、ユーザーをJNLPアプレットがデプロイされているページにリダイレクトします。

サーバー側には、jnlpファイルテンプレートがあります。

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

次に、サーバーはAjaxを介して値を取得したため、PHPまたはJSPを使用して適切なjnlpファイルを生成し、それをユーザーのブラウザーに渡すことができます。

于 2013-03-26T10:28:16.083 に答える