尝试使用jnlp部署java applet

时间:2011-08-29 19:08:44

标签: java deployment applet jnlp next-generation-plugin

我正在尝试使用jnlp

部署applet

我的jnlp文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.6" codebase="http://localhost:8080/docRuleTool/appletjars/" href="dynamictree-applet.jnlp">
    <information>
        <title>dynamictree</title>
        <vendor>dynamic</vendor>
    </information>
    <resources>
        <j2se version="1.6" href="http://localhost:8080/docRuleTool/appletjars/" />
        <jar href="dynamictree.jar" main="true" />
        <jar href="prefuse.jar" main="true" />
    </resources>
    <applet-desc 
         name="dynamictree-applet"
         main-class="com.vaannila.utility.dynamicTreeApplet.class"
         width="1000"
         height="1000">
     </applet-desc>
     <update check="background"/>
</jnlp>

我的applet代码:

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
    var attributes = { id:'DynamicApplet', code:'jstojava.dynamicTreeApplet',} ;
    var parameters = {jnlp_href:'./appletjars/dynamictree-applet.jnlp'} ;
    deployJava.runApplet(attributes, parameters, '1.6');
</script>

我的javascript:

function showSelected(value){
alert("the value given from  "+value);  
DynamicApplet.dieasenameencode=value; 
}

我得到的错误:

execption: The application has requested a version of the JRE (version 1.6) that currently is not locally installed. Java Web Start is unable to automatically download and install the requested version. This JRE must be installed manually..
JNLPException[category: System Configuration : Exception: null : LaunchDesc: 
<jnlp spec="1.6" codebase="http://localhost:8080/docRuleTool/appletjars/" href="http://localhost:8080/docRuleTool/appletjars/dynamictree-applet.jnlp">
  <information>
    <title>dynamictree</title>
    <vendor>dynamic</vendor>
    <homepage href="null"/>
  </information>
  <update check="background" policy="always"/>
  <resources>
    <java href="http://localhost:8080/docRuleTool/appletjars/" version="1.6"/>
    <jar href="http://localhost:8080/docRuleTool/appletjars/dynamictree.jar" download="eager" main="true"/>
    <jar href="http://localhost:8080/docRuleTool/appletjars/prefuse.jar" download="eager" main="true"/>
  </resources>
  <applet-desc name="dynamictree-applet" main-class="com.vaannila.utility.dynamicTreeApplet.class" documentbase="http://localhost:8080/docRuleTool/" width="1000" height="1000"/>
</jnlp> ]
    at sun.plugin2.applet.JNLP2Manager.downloadJREResource(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: JNLPException[category: System Configuration : Exception: null : LaunchDesc: 
<jnlp spec="1.6" codebase="http://localhost:8080/docRuleTool/appletjars/" href="http://localhost:8080/docRuleTool/appletjars/dynamictree-applet.jnlp">
  <information>
    <title>dynamictree</title>
    <vendor>dynamic</vendor>
    <homepage href="null"/>
  </information>
  <update check="background" policy="always"/>
  <resources>
    <java href="http://localhost:8080/docRuleTool/appletjars/" version="1.6"/>
    <jar href="http://localhost:8080/docRuleTool/appletjars/dynamictree.jar" download="eager" main="true"/>
    <jar href="http://localhost:8080/docRuleTool/appletjars/prefuse.jar" download="eager" main="true"/>
  </resources>
  <applet-desc name="dynamictree-applet" main-class="com.vaannila.utility.dynamicTreeApplet.class" documentbase="http://localhost:8080/docRuleTool/" width="1000" height="1000"/>
</jnlp> ]

1 个答案:

答案 0 :(得分:1)

问题在于这一行:

<j2se version="1.6" href="http://localhost:8080/docRuleTool/appletjars/" />

Java Web Start将尝试从href属性中给出的url下载Jre 1.6。更正版本如下:

<j2se version="1.6" href="http://java.sun.com/products/autodl/j2se" />

可在此处找到示例JNLP文件:Distribute your Swing application via Java Web Start