2013-07-10 2 views
8

Недавно я применил исправление к настольному приложению Java. Я сделал это, изменив код в одном из моих классов, скомпилировал его и отправил новую банку в производственную среду.Как исправить программу Java?

Теперь меня спрашивают, можно ли просто исправить баночку в процессе производства, просто скопировав скомпилированный класс, который я исправил, или даже создаю программу/скрипт для исправления, которая сможет обновлять только измененные файлы.

Дополнительная информация:

  1. Патч не должен применяться в период выполнения. Значение патча может быть сделано как отдельная программа или активность. Моя старая программа не требует автоматического обновления.
  2. Можно ли это сделать и с веб-приложениями (WAR-файл)?

Лучший ответ, который я придумал, это, но ему 2 года. Patching Java software

Это мое требование редко? Я никогда не видел учебника по исправлению приложения Java.

+0

Этот вопрос выглядит не по теме, потому что речь идет об инфраструктуре - лучше подходит программистам или, возможно, serverfault – Bohemian

ответ

7

Теперь меня спрашивают, можно ли просто исправить баночку в процессе производства, просто скопировав скомпилированный класс, который я исправил, или даже создаю программу/скрипт для исправления, которая сможет обновлять только измененные файлы ,

Да. Можно исправить файл JAR с помощью jar -u. Также возможно скопировать файл WAR таким же образом.

Но я бы не рекомендовал его. Файл JAR или WAR должен быть единицей развертывания/управления. Если вы начнете исправлять файлы JAR/WAR на производственных серверах, трудно отслеживать, что на самом деле используется там. Если вы не будете осторожны, царит хаос и путаница.

Единственная ситуация, когда исправление является неизбежным, заключается в том, что у вас есть сторонняя библиотека или что-то, что вы не можете построить из исходного кода, но вам все равно нужно изменить. Но даже в этом случае лучше всего изменить JAR/WAR на вашей платформе сборки и развернуть модифицированную JAR/WAR. Попытка исправить JAR, WARs или развернутые webapps на производственной платформе - плохая идея.


Является ли мое требование редко?

Да. Есть лучший способ ...

Я никогда не видел учебника по исправлению приложения Java.

Не удивительно, учитывая, что есть лучший путь ...

+0

Спасибо за ваш ответ. Как я уже сказал, при повторном развертывании проверенная Jar/War - это то, что я обычно делаю. Это был мандат нашего отдела безопасности и стандартизации, и я рад, что я был не единственным, кто нашел это требование столь же странным. –

+0

@JefreyValencia - У меня возникнет соблазн отойти назад, чтобы «предоставить нам исправленные и проверенные JAR». Мне также было бы интересно узнать, что они требуют от вас заплатить. Все это звучит немного странно. –

+0

Привет, Стивен, более или менее группа безопасности и стандартная команда просто пытаются следить за изменениями, которые мы делаем с уже существующим приложением. Один из их примеров (упрощенный/перефразированный) заключается в том, что если в ОС Windows существует ошибка, вы просто исправляете ее, а не переустанавливаете приложение. Этот аргумент имеет смысл, но в моем ограниченном опыте я не знал, возможно ли это или даже хорошая практика для Java-приложения. –

4

Вы можете обновить старую банку, делая jar uf jarfile classfile(s)

Это заменят старые файлы класс с таким же именем с новыми, что делает авто патчер с помощью этого не должно быть трудно

+0

Спасибо за ваш ответ, просто выберите Стивен, потому что он также добавил дополнительную информацию. –

2

Для развертывания настольных приложений Java. , лучшим вариантом обычно является установка приложения. используя Java Web Start. JWS работает в Windows, OS X & * nix. Он включает автоматическое обновление.

Можно ли это сделать и с веб-приложениями (WAR-файл)?

№ JWS предназначен для настольных приложений. только.

+0

Спасибо за ваш ответ. Мы можем попробовать это на будущих настольных приложениях –

0

Посмотрите Getdown - целью которой является обеспечение системы для загрузки и установки набора файлов на компьютере пользователя и обновление этих файлов по мере необходимости.

 Смежные вопросы

  • Нет связанных вопросов^_^