2011-09-24 15 views
1

私はアプリケーションを作ったので、私は開始時に自動更新を行います。多くの人がJava Web Startを提案しています。 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); 

を挿入するプログラムのメインではので、私は、Webサーバへのdistのフォルダ内のすべてのファイルをアップロードしました。今、lunch.jnplでアプリケーションを起動すると問題なく起動します。しかし、私は私のjarファイルを使用するとエラーが発生しました:メインクラス "私のクラス"プログラムの終了を見つけることができませんでした。

私はDownloadService2を使用しないでください。それはJarファイルで動作します。 私の質問は次のとおりです: Java Web Startを使用してプログラムを更新するにはどうすればよいですか?

たとえば、別のバージョンをリリースしてcodebase URLを置くと、jarファイルでプログラムを起動すると新しいバージョンがダウンロードされるはずです。

誰かが私に間違ったことを教えてもらえますか、あるいはJava Web Startの仕組みを誤解していませんか?

編集:私はプログラムはこの行を次のことになります。それはpossibileだ場合 1)昼食をjarファイルで、更新を確認...それは古いもの 2オフラインでの使用をbecouseカント場合)、更新のためのオンラインチェックであればaviableダウンロードした場合フォルダ内の更新 3)更新できない場合は古いものを使用してください。 繰り返し1 2 3

答えて

1

まあこれは、二つの区分けはそれが、今ではないです。

まず、なぜあなたはあなたのメインクラスに関するエラーが出るのですか?あなたのjnlpファイルには正しいパッケージがあり、メインクラスの名前は宣言されていますか?

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

次に、更新はどのように行われますか。誰かがあなたのjnlpファイルにアクセスしてそこからあなたのjarアプリケーションを起動すると、そのjarファイルはクライアントのマシンにローカルにダウンロードされます。次に、彼が2回目にそれを実行するとき、jnlpプロトコルは最初にjarが更新されているかどうかを確認するURLをチェックします。そうであれば、それは新しいバージョンを取得し、それがクライアントが実行するものです。それが更新されていない場合、以前にダウンロードされたjarファイルはローカルマシンから実行されます。

+0

jplnにクラスがあり、どのようにそれらのステップを編集トピックで書くことができますか?オンラインで新しいaviableアップデートをフォルダにダウンロードした場合、またはアップデートがそれを起動していない場合は、jarを起動してください。 IFオフラインでは、フォルダ内の古いものを使用します。 – Strom

関連する問題