0

可能重复:
如何用 Java 编写自更新程序?

所以,我有一个问题要问你们。我正在制作一个游戏,我希望它是可更新的,例如我的世界或激战 2 或任何其他好的游戏。我的问题是如何。我一直在寻找,我真的找不到任何好主意。我已经与服务器和客户端建立了连接,所以我需要的是传输新文件,然后替换旧文件。我正在使用socket方法,因为我认为这是唯一的方法......但我不确定。我所拥有的:两个程序中的一个名为 updateClass 的类。两者完全相同。然后,我让服务器将对象发送给客户端,并让客户端读取嵌入在对象中的 msg,就像一个简单的测试一样。它说它无法发送对象。我在接收端投了它,所以我不确定。我的问题是,我在正确的轨道上吗?有什么想法或建议吗?我不是在寻找特定的代码,但如果你有一些我欢迎它,我喜欢这个挑战。另外,我将如何让我的程序更新其类文件?似乎它在运行时不应该能够,这是一个小问题......所以让我知道你们的想法!提前致谢!

4

3 回答 3

1

..我在正确的轨道上吗?

为 J2SE 应用程序提供更新的更容易的“跟踪”。是使用Java Web Start部署它。

自动更新是 JWS“开箱即用”带来的众多优势之一。最近的 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 回答