2016-07-19 10 views
-1

それ自体を更新できるアプリケーションと同じくらい簡単です。 もっと具体的には、Webからjarファイルをロードし、現在のjarファイルに置き換えるランチャーである可能性があります。自動更新するJavaアプリケーションを作成するにはどうすればいいですか?

私が欲しいのアプローチは、次のとおりです。

  • Javaでコーディングされているランチャー。
  • ランチャー全体がクラスローダーe.t.cを使用します。
  • 私は以前のjarからのデータを保持したいと思います。以前のjarファイルのデータが.txtファイルに書き込まれ、新しいファイルに渡される可能性がありますか? (可能な場合)

私は、クラスローダーまたはそれに従うべき方向についての手がかりはありません。 私の質問は "です。どうすればクラスローダーを使って自動更新Javaアプリケーションを作成できますか?"。

P.S.私は最後の選択であるJava Web Startを望みます。いくつかのコード行は私を非常に助けます。

編集:私はあなたが理論的に言っていることを完全に理解しています。私が探しているのは具体的なものですまたはコード私はの参照とすることができます。 私はリンクやコードを見つけることができないので、理論は重複していません。

+0

「Classloader」に固定されている理由はわかりません。あなたが思うとは思っていません。あなたが探しているのは、Webにアクセスして更新が必要かどうかを確認するコード(実際のアプリケーションに依存しない)です。完了したら、アプリケーションの現在のjarファイルを新しくダウンロードしたjarファイルで上書きする必要があります。 –

+1

@AndrewGクラスローダーのアイデアは[link]から来ました(http://stackoverflow.com/questions/4002462/how-can-i-write-a-java-application-that-c​​an-update-itself-at-runtime ?rq = 1)。しかし、私はあなたに同意します。それでもあなたが私に指示することができる方向はありますか? –

答えて

0

URLClassLoaderを使用すると、URLからjarファイルをロードできます。注意、URLはローカルファイルでもかまいません.jarファイルをロードする前に、ウェブから直接ロードする代わりに、jarファイルをローカルにダウンロードすることをお勧めします。この理由は、ユーザーがサーバーにアクセスできない場合でもアプリケーションを使用可能にしておきたいためです。

ただし、このアプローチをとることもおすすめしません。ランチャーを更新する場合はどうすればよいですか?メインアプリケーションから別個のアップデータアプリケーションをダウンロードし、別個のアップデータアプリケーションを起動し、メインアプリケーションを強制終了して更新する方が良いでしょう。

+0

お返事ありがとうございます。私が編集で言ったように、私が見るために指摘できる何か具体的なものはありますか? –

+0

ここで期待しているコード例は何であるかわかりませんが、これはかなり一般的な問題です。 http://masterex.github.io/archive/2011/12/25/jupar.html ご覧になりたい特定のビットはありますか? – WouterH

+0

これは実際には私が望んでいたものではありません。私が勉強して、すべてがどのように働くかを見ることができるリファレンス。御時間ありがとうございます! –

関連する問題