Создание обновляемой программы в java?

Возможный дубликат:
Как написать самообновляющуюся программу на Java?

Итак, у меня есть вопрос к вам, ребята. Я делаю игру и хочу, чтобы ее можно было обновлять, например, minecraft или guild wars 2 или любую другую хорошую игру. мой вопрос как. Я делал кучу поиска, и я не могу найти никаких хороших идей. у меня уже есть соединение ч/б сервер и клиент, поэтому мне нужно передать новые файлы, а затем заменить старые. я использую подход socket, потому что думаю, что это единственный способ... но я не уверен. что у меня было: класс в обеих программах с именем updateClass. в обоих было одинаково. Затем я заставил сервер отправить объект клиенту, и клиент прочитал сообщение, встроенное в объект, как простой тест. он сказал, что не смог отправить объект. Я отлил его на приемном конце, поэтому я не уверен. мой вопрос, я на правильном пути? любые идеи или предложения? я не ищу конкретный код, но если он у вас есть, я приветствую его, мне нравится вызов. Кроме того, как мне заставить мою программу обновлять свои файлы классов? кажется, что это не должно быть возможно во время работы, что является небольшой проблемой ... так что дайте мне знать, что вы, ребята, думаете! заранее спасибо!


person PulsePanda    schedule 02.12.2012    source источник
comment
Опубликуйте SSCCE, чтобы быстрее получить помощь.   -  person Mordechai    schedule 02.12.2012
comment
также, как мне получить мою программу... это следует задать как отдельный вопрос.   -  person Mordechai    schedule 02.12.2012
comment
Вы, вероятно, не правильно создаете соединение, опубликуйте свой класс UpdateClass.   -  person Mordechai    schedule 02.12.2012


Ответы (3)


Вы должны отправить бинарное определение вашего класса (содержимое файла .class) по сети и загрузить его в виртуальную машину с помощью ClassLoader.defineClass(String name, byte[] b, int off, int len). Сериализованная версия класса не является байт-кодом Java для класса. Позаботьтесь о том, чтобы вы не могли выгрузить класс после загрузки, поэтому вы не можете обновлять их в том же загрузчике классов.

person Nemanja    schedule 02.12.2012

Возможно, этот урок даст вам некоторое представление:

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/

person Yves_T    schedule 02.12.2012

..я на правильном пути?

Гораздо проще «отслеживать» предоставление обновлений для приложения J2SE. заключается в развертывании с помощью Java Web Start.

Автоматическое обновление — одно из многих преимуществ JWS «из коробки». Более поздние версии JRE даже позволяют использовать приложение. сам для взаимодействия с API, который выполняет обновления.

person Andrew Thompson    schedule 02.12.2012