如何将参数传递给JNLP启动Swing应用程序?

时间:2016-09-19 16:29:48

标签: java swing servlets java-web-start jnlp

我需要在客户端打开一个Java Swing应用程序来调用servlet。在Swing应用程序的主要方法中也需要接收很少的参数,该方法通过JNLP在客户端浏览器上打开。在我的情况下,swing应用程序正在打开,但无论如何都不会收到任何参数。

我的JNLP文件不是动态构建的。这是一个静态文件。这是:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" 
      codebase="http://localhost:8085/TestWebApp" 
      href="ContactEditor.jnlp">

    <information>
        <title>JNLP Example</title>
        <vendor>Catalyst Software</vendor>
        <homepage href="http://localhost:8085/TestWebApp" />
        <description>JNLP Testing</description>
    </information>

    <security>
        <all-permissions/>
    </security>

    <resources>
        <j2se version="1.6+" />
        <jar href="ContactEditor.jar" />
    </resources>

    <application-desc main-class="my.contacteditor.ContactEditorUI">
        <argument>00001</argument>
        <argument>Harish Prasad</argument>
        <argument>220153429088</argument>
    </application-desc>    

    <security>
        <all-permissions/>
    </security>

</jnlp>

请建议如何将参数从servlet动态传递给swing应用程序。

我的问题是:

  1. 我必须在Swing程序中编写什么代码?
  2. 我在JNLP文件中有什么要提的?
  3. 我应该如何传递servlet中的值?

1 个答案:

答案 0 :(得分:2)

  1. JNLP File Syntax指定“每个参数包含(按顺序)要传递给main的附加参数。”

    public static void main(String[] args) { 
        for (String value : args) {
            …
        }
    }
    
  2. 您的<argument>语法显示正确,符合指定here;如上所述,<security>元素出现两次here;验证@AndrewThompson注释here的语法。

  3. 您需要动态构建JNLP文件,如here所述。