尝试使用JNLP启动jar文件时遇到问题。我们以前在没有JNLP的情况下推出了applet,没有任何问题。我们想要启动三个与jnlp文件一起保存在同一目录中的不同jar。所有的jar都被下载了,但是一旦我们尝试从一个外部jar(即那些不是主要的jar)中加载一个类,我们就会看到一个classNotFoundError。应用程序运行直到发生这种情况,因此我们的主jar似乎执行。 JNLP文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="/jars/file.jnlp">
<information>
<title>Client</title>
<vendor>My Vendor</vendor>
<description>Description</description>
<description kind="short">Desc</description>
<offline-allowed />
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.6+" />
<jar href="mainJar.jar" main="true" download="eager"/>
<jar href="extJar1.jar" main="false" download="eager"/>
<jar href="extJar2.jar" main="false" download="eager" />
</resources>
<applet-desc
name="MyApp"
main-class="path-to-main-class"
width="1"
height="1">
</applet-desc>
</jnlp>
然后从HTML文件启动applet,如下所示:
<applet
code="com.mycompany.net.MyMainClass"
name="MyApp"
archive="/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar"
id="myId"
width="1"
height="1"
mayscript
alt="The java plugin must be installed.">
<param name="jnlp_href" value="/jars/file.jnlp"/>
Java 1.5 or higher required.
</applet>
我已经用Janela检查了jnlp,它没有给我任何错误。它适用于从Eclipse运行applet以及没有jnlp文件。它还可以从javaws打开jnlp文件,指定文件的文件或URL。这让我觉得这是不正确的HTML。然而,就我而言。我尝试使用以下javascript启动,结果相同:
<script src="http://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {
id:'myId',
code:'com.mycompany.net.MyMainClass',
width:1,
height:1,
name:"MyApp"
};
var parameters = {
jnlp_href:"/jars/file.jnlp",
archive:"/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar",
};
deployJava.runApplet(attributes, parameters, '1.6');
答案 0 :(得分:0)
我的JNLP使用外部jar,我在codebase="http://example.com/full/path/to/jars/"
标记中定义了href="http://example.com/full/path/to/jars/file.jnlp"
和<jnlp>
。
修改尝试使用working example - click the Lancer le planificateur
button查看其实际效果。
edit2 结帐JNLP as a Applet in HTML page,看看Object
而不是Applet
是否会有所帮助。