6

我正在通过 JNLP 和 Java Web Start 启动一个小程序。我的问题是,当页面被加载时,两个 JVM 将启动两个 Java 控制台弹出窗口和两个“你想运行这个应用程序吗?”。弹出窗口。除此之外,小程序最终加载,甚至我的本机库也正确加载。我不确定是什么导致了双重启动。

编辑:另外,第一个加载的 JVM 会在大约 30-45 秒后自动关闭。

html

<script>
var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class", width:770, height:825};
var parameters = {jnlp_href: "tracker-applet.jnlp"};
deployJava.runApplet(attributes, parameters, "1.6");
</script>

jnlp

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="">
    <information>
        <title>Tracker</title>
        <vendor>My Vendor</vendor>
    </information>
    <resources os="Windows">
        <!-- Application Resources -->
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
        <jar href="tracker_applet.jar" main="true" />
        <nativelib href="applets/jacob.jar"/>
        <nativelib href="applets/com4j.jar"/>
    </resources>
    <applet-desc 
         name="Tracker Applet"
         main-class="com.osgi.swpc.applet.TrackerApplet"
         width="770"
         height="825">
     </applet-desc>
     <update check="background"/>
</jnlp>
4

3 回答 3

0

嗯……有趣的问题

我不太确定,因为有更多细节会很好......但我第一眼看到你指出主类重复:

...在 JS 中

var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class", width:770, height:825};

然后在 JNLP

main-class="com.osgi.swpc.applet.TrackerApplet"

所以请尽量只拥有一个主要的类属性。最好将其留在 JNLP 中并再次尝试启动;


如果您有其他问题的详细信息,请发表评论

报告是否有帮助

于 2013-04-15T17:06:45.973 回答
0

我不确定是什么导致了双重启动。

这取决于您使用的 Java 实现,但在最新版本的 Oracle JRE(以前是 Sun JRE)中,WebStart 应用程序将:

  • 缓存 JNLP 文件
  • 阅读 JNLP 文件以查找需要下载的资源列表(这些通常是您的 JAR)
  • 使用最近下载的 JAR 构建一个命令来启动一个普通的 Java 应用程序
  • 启动 Java 应用程序

(请注意,我并不是要完整描述 Java WebStart 的功能,而只是尝试提供一些对该过程的见解。)

这样,您首先有一个javaws可执行文件,它运行的时间几乎与下载 JAR 所需的时间一样长,然后是一个java可执行文件,它将执行实际的程序。

于 2014-06-30T09:49:31.740 回答
0

如果 MSIE 发生这种情况,只想添加一个禁用“智能屏幕过滤​​器”的建议,尤其是在没有/缓慢互联网访问的情况下。

该选项的位置取决于 MSIE 版本,我认为在 MSIE 7 中它直接在 Extras 菜单中,而在 9 中它在 Internet 选项中的安全设置下。

于 2016-06-16T20:51:05.013 回答