2011-09-24 129 views
1

我做了一個應用程序,我會在開始時自動更新。閱讀stackoverflow許多人建議Java Web開始。 因此,使用Netbeans,我啓用了Web啓動配置,並很快啓用。它生成launch.jnpl html,jar文件和lib文件夾。 在主程序中的我插入Java Web Start和主類

DownloadService2 service = (DownloadService2) 
ServiceManager.lookup("javax.jnlp.DownloadService2");       
ResourceSpec spec = new ResourceSpec("http://www.mysite:8080/.*", "1.*", service.JAR); 
ResourceSpec results[] = service.getCachedResources(spec); 
results = service.getUpdateAvailableResources(spec); 

所以我上傳的DIST文件夾中的所有文件到網絡服務器。現在,如果我用lunch.jnpl啓動應用程序,它會毫無問題地開始。但是當我使用我的jar文件時出現錯誤:無法找到主類「我的課程」程序退出。

現在如果我不使用DownloadService2它與Jar文件一起使用。 所以我的問題是: 我如何使用Java Web Start來更新我的程序?

例如,如果我發佈另一個版本並將其放入代碼庫url,如果我用jar文件啓動程序,它應該下載新版本。

有人可以告訴我,如果我錯了什麼或誤解了Java Web開始如何工作? 2)如果在線檢查更新,如果可以下載,請檢查更新...如果它不能使用舊版本,請使用舊版的 在文件夾中更新 3)如果更新不可變,請使用舊版本。 重複1 2 3

回答

1

嗯,這是一個兩個舞伴現在,是不是:

首先,爲什麼你獲得有關你的主類的錯誤?你的jnlp文件是否有正確的軟件包和聲明的主類名稱?它應該是這樣的:

<application-desc main-class="package1.package2.MyMainClass" /> 

其次,如何更新工作。那麼一旦有人訪問了你的jnlp文件並從中啓動了你的jar應用程序,那麼這個jar就會在客戶機上本地下載。然後,當他第二次運行它時,jnlp協議將首先檢查url以查看jar是否已經更新。如果是這樣,那麼它會得到新版本,這就是客戶端將運行的。如果尚未更新,則先前下載的jar將從本地機器運行。

+0

jpln中有類,我該如何做這些步驟寫在我的編輯主題?啓動jar(不啓動)檢查更新如果在線下載文件夾中新的aviable更新,或者如果沒有更新啓動它。如果離線使用文件夾中較舊的文件夾。 – Strom