2015-05-08 20 views
0

摘要:你怎么跑重复javaws的应用程序(它们来自相同的源代码,但使用单独的数据)在同一台机器上?运行重复的javaws应用

我有一个旧版本在客户现场运行的应用程序。我对应用程序进行了升级,并部署了两者(使用不同的数据库,战争,服务器等),并希望能够让用户在其计算机上同时下载和运行这两个应用程序。由于应用程序本质上是相互独立的,因此应该不存在重叠数据的问题。但是,.JNLP文件将下载新的应用程序并覆盖旧的应用程序 - 反之亦然。我们要在同一时间,使得生产不停止运行两者,他们可以之前测试的改进功能切换的最新应用到他们的生产。

我已经更改了新应用程序的名称以及JNLP文件中的开始菜单名称,但它们仍然彼此覆盖。我想有这个问题中的子问题:如何/哪里的Java确定应用程序正在下载/通过网络安装启动已经存在?我的猜测是它是来自主类的名字。

感谢

为参考MIS.JNLP:

<?xml version="1.0" encoding="utf-8"?> 
 
<!-- JNLP File for Foo Registration Application --> 
 
<jnlp 
 
    spec="1.7+" 
 
    codebase="http://foo:8080/mis" 
 
    href="mis.jnlp"> 
 
    <information> 
 
    <title>MIS TEST</title> <!-- Original: 'MIS' --> 
 
    <vendor>Foo Inc.</vendor> 
 
    <description>Bar MIS System</description> 
 
    <shortcut online="false"> 
 
     <desktop/> 
 
     <menu submenu="FooBar MIS TEST"/> <!--Original: 'FooBar MIS' --> 
 
    </shortcut> 
 
    </information> 
 
    <security> 
 
     <all-permissions/> 
 
    </security> 
 
    <resources> 
 
    <j2se version="1.7+" java-vm-args="-client"/> 
 
    ... 
 
    </resources> 
 
    <application-desc main-class="FooMainApp"/> 
 
</jnlp>

解决方案(感谢维克在下面的评论):

我不得不改变我的构建,使a .war用不同的名字正在创建。此外,JNLP名称已更改,以及.html文件中指向jnlp的链接。这些东西的组合允许重复的应用程序同时运行。

+1

什么的URL是您使用?根据Oracle文档“JNLP客户端(如Java Web Start)下载的每个JAR文件都唯一标识一个URL,如果两个JNLP文件使用相同的URL,那么资源将只下载一次并共享。通过Web浏览器使用的缓存实现” – Vic

+0

老:HTTP://富:8080/MIS 新:HTTP:// foobar的:8080/MIS ..我会尝试改变.war文件名,看看是否有一个影响。感谢您输入Vic。 – ballBreaker

+0

@Vic,如果你足够关心你可以让你说的答案,我会接受它。这只是我需要的信息。再次感谢。 – ballBreaker

回答

1

根据Oracle文档“JNLP客户端(如Java Web Start)下载的每个JAR文件都唯一标识一个URL,如果两个JNLP文件使用相同的URL,那么资源将只下载一次并共享这是类似于Web浏览器使用的缓存实现”