我是新来的,我为我糟糕的英语道歉。
我对由 Java Web Start 技术提供的 Applet 类有一点问题。我有一些 Web Start 正确下载的依赖于平台的 JAR 文件,但是当我通过对象的getResourceAsStream(String fileName)
方法获取内容时ClassLoader
,首先向 WEB 服务器发出 GET 请求fileName
,收到404 Not Found
响应后,从 JAR 文件中正确加载资源。问题是我在 JAR 中有很多文件,所以我在 WEB 服务器上有很多不必要的负载,因此我必须等待很长时间才能使用 Applet。
在谷歌上搜索我发现了一些讨论,据说可以添加codebase_lookup
带有 value的参数false
,但这并没有解决问题。这个页面,与codebase_lookup
参数有关,表示 Applet 的默认行为是从 JAR 文件加载资源,然后从 Applet 代码库加载资源,在我的情况下,行为是相反的。
我还在文件eager="true"
中为每个 JAR 资源添加了属性.jnlp
,但行为始终相同。Applet 是使用 NetBeans 开发和构建的,生成的 html 和 jnlp 文件如下。
启动.html
<applet width="300" height="300">
<param name="jnlp_href" value="launch.jnlp"/>
<param name="codebase_lookup" value="false"/>
</applet>
启动.jnlp
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://192.168.23.4/contact" href="launch.jnlp" spec="1.0+">
<information>
<title>ContactNR</title>
<vendor>Roberto Santini</vendor>
<homepage href=""/>
<description>ContactNR</description>
<description kind="short">ContactNR</description>
</information>
<resources>
<j2se version="1.5+"/>
<jar eager="true" href="ContactNR.jar" main="true"/>
<jar eager="true" href="lib/VDK.jar"/>
<security>
<all-permissions/>
</security>
</resources>
<resources arch="amd64" os="Linux">
<jar eager="true" href="lib/liblinux64.jar"/>
</resources>
<resources arch="x86_64" os="Linux">
<jar eager="true" href="lib/liblinux64.jar"/>
</resources>
<resources arch="x86" os="Linux">
<jar eager="true" href="lib/liblinux.jar"/>
</resources>
<resources arch="i386" os="Linux">
<jar eager="true" href="lib/liblinux.jar"/>
</resources>
<resources os="Windows">
<jar eager="true" href="lib/libwin.jar"/>
</resources>
<resources os="MacOs">
<jar eager="true" href="lib/libmac.jar"/>
</resources>
<applet-desc height="300" main-class="com.netresults.voip.ContactNR" name="ContactNR" width="300">
<param name="codebase_lookup" value="false"/>
</applet-desc>
</jnlp>
有人能帮我吗?非常感谢,
罗伯托。