通过JavaWebStart(JNLP)启动的小程序启动两次

通过JavaWebStart(JNLP)启动的小程序启动两次,java,applet,jnlp,java-web-start,Java,Applet,Jnlp,Java Web Start,我正在通过JNLP和JavaWebStart启动一个小程序。我的问题是,当加载页面时,两个JVM将启动,其中有两个Java控制台弹出窗口和两个“是否要运行此应用程序?”弹出窗口。除此之外,小程序最终被加载,甚至我的本机库也被正确加载。我真的不确定是什么导致了双重发射 编辑:另外,第一个加载的JVM在大约30-45秒后自动关闭 html <script> var attributes = { code:"com.osgi.swpc.applet.TrackerApplet.class"

我正在通过JNLP和JavaWebStart启动一个小程序。我的问题是,当加载页面时,两个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>

var attributes={code:“com.osgi.swpc.applet.TrackerApplet.class”,宽度:770,高度:825};
var参数={jnlp_href:“tracker applet.jnlp”};
runApplet(属性、参数,“1.6”);
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>

跟踪器
我的卖主

Emm。。。有趣的问题

我不太确定,因为如果有更多的细节就好了。。。但在我第一眼看到的时候,我可以注意到你指的是主类副本:

。。。在JS中

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

main-class="com.osgi.swpc.applet.TrackerApplet"
所以请尽量只吃一个。最好将其留在JNLP中,然后再次尝试启动


如果您有其他问题详情,请评论

如果有帮助,请报告

我真的不确定是什么导致了双重发射

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

  • 缓存JNLP文件
  • 阅读JNLP文件以查找需要下载的资源列表(这些通常是您的JAR)
  • 构造一个命令,使用最近下载的JAR启动普通Java应用程序
  • 启动Java应用程序
(请注意,我并没有试图对JavaWebStart的功能进行完整的描述,但我只是试图对该过程提供一些见解。)


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

如果MSIE出现这种情况,只想添加一个建议,禁用“智能屏幕过滤器”尤其是在没有/慢速互联网接入的情况下


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

是缺少的“在var属性中。。。错别字?是的,是错别字。我对这个问题进行了编辑,以澄清这一点。@JustinSkiles:这在所有浏览器上都会发生吗?你是否以某种方式解决了这个问题,我也遇到了同样的问题…@vanthome Nope。我已经好几年没看到这个了。我想我们最终还是忽略了它,它随着JRE和浏览器的升级而消失了。