0

重複の可能性:
Java で自己更新プログラムを作成する方法は?

そこで、皆さんに質問があります。私はゲームを作っていますが、マインクラフトやギルドウォーズ 2、その他の優れたゲームなど、更新可能にしたいと考えています。私の質問はどのようにです。私はたくさんの検索を行ってきましたが、本当に良いアイデアを見つけることができません。私はすでにサーバーとクライアントの両方に接続しているので、新しいファイルを転送してから古いファイルを置き換える必要があります。私はを使用していますsocketそれが唯一の方法だと思うので、アプローチします...しかし、よくわかりません。私が持っていたもの: updateClass と呼ばれる両方のプログラムのクラス。それは両方でまったく同じでした。次に、単純なテストとして、サーバーにオブジェクトをクライアントに送信させ、クライアントにオブジェクト内に埋め込まれたメッセージを読み取らせました。オブジェクトを送信できませんでした。受信側でキャストしたので、よくわかりません。私の質問は、私は正しい軌道に乗っていますか? アイデアや提案はありますか?私は特定のコードを探しているわけではありませんが、何かあれば大歓迎です。また、プログラムにクラスファイルを更新させるにはどうすればよいですか? 実行中はできないようですが、これはちょっとした問題です...皆さんの意見を教えてください! 前もって感謝します!

4

3 に答える 3

1

..私は正しい方向に進んでいますか?

J2SEアプリの更新を提供するためのはるかに簡単な「追跡」。JavaWebStartを使用してデプロイすることです。

自動更新は、「すぐに使用できる」JWSに付属する多くの利点の1つです。最近のJREでもアプリが許可されています。更新を行うAPIと対話するためにそれ自体。

于 2012-12-02T07:38:41.193 に答える
1

たぶん、このチュートリアルはあなたにいくつかのアイデアを与えることができます:

http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/

またはこれ:

http://www.hascode.com/2012/05/creating-updatable-java-applications-using-getdown-and-the-getdown-maven-plugin/

于 2012-12-02T06:13:56.287 に答える
1

クラスのバイナリ定義 (.class ファイルのコンテンツ) をネットワーク経由で送信し、ClassLoader.defineClass(String name, byte[] b, int off, int len) を使用して VM にロードする必要があります。クラスのシリアル化されたバージョンは、クラスの Java バイトコードではありません。一度ロードされたクラスはアンロードできないため、同じクラスローダーでそれらを更新できないことに注意してください。

于 2012-12-02T06:22:07.860 に答える