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瀏覽器使用的緩存實現」