Comment patcher un programme Java?
Récemment, j'ai appliqué un correctif à un Java application de bureau. Je l'ai fait en modifiant le code dans une de mes classes, compilé et envoyé le nouveau pot à l'environnement de production.
Je me suis demandé si il est possible de patcher le pot dans la production par une simple copie de la classe compilée que je fixe, ou même de créer une application de correctifs programme/script qui sera en mesure de mettre à jour uniquement les fichiers modifiés.
Informations supplémentaires:
- Le patch ne doit pas être appliqué au moment de l'exécution. Sens le patch peut être fait comme un programme distinct ou d'une activité. Mon ancien programme n'a pas besoin de mise à jour automatique de lui-même.
- Cela peut être fait avec des applications web (WAR)?
La meilleure réponse que j'ai trouvé est ça, mais il est de 2 ans.
Correctifs logiciels Java
Est mon exigence rare? Je n'ai jamais vu un tutoriel pour retoucher une application Java.
OriginalL'auteur Jefrey Valencia | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Oui. Il est possible de patcher un fichier JAR à l'aide de
jar -u
. Il est également possible de patcher un fichier WAR de la même façon.Mais je ne le recommanderais PAS. Le POT ou le fichier WAR devrait être l'unité de déploiement /de gestion. Si vous démarrez l'application de correctifs JAR /la GUERRE des fichiers sur les serveurs de production, il est difficile de suivre ce qui est réellement utilisé où. Si vous n'êtes pas prudent, le chaos et la confusion règne.
La seule situation où l'application des correctifs sont inévitables est l'endroit où vous avez une 3e partie de la bibliothèque ou quelque chose que vous ne pouvez pas construire à partir de la source, mais vous avez besoin de modifier, tout de même. Mais, même dans ce cas, il est préférable de modifier le JAR /WAR sur votre plate-forme de construction et de déployer la modification de JAR /WAR. En essayant de patch Pots, des Guerres ou des déployée webapps sur la plate-forme de production est une mauvaise idée.
Oui. Il y a une meilleure façon ...
Pas surprenant, étant donné qu'il ya une meilleure façon ...
Je serais tenté de repousser avec "nous fournissez avec corrigé et testé correctement Pots". Je serais également curieux de savoir ce qu'ils exigent de vous de patch. Tout cela semble un peu bizarre ..,.
Salut à nouveau Stephen, plus ou moins, de la sécurité et de la norme de l'équipe sont juste essayer de suivre les changements que nous faisons pour que l'application est déjà en production. L'un de leur exemple (Simplifié/Reformulé), c'est que si un bug existe pas dans le système d'exploitation Windows est vous venez de le corriger, plutôt que de réinstaller l'application. Cet argument fait sens, mais dans mon expérience limitée, je ne sais pas si c'est possible ou même des bonnes pratiques pour une application java.
Je vois. Alors que font-ils quand vous déployez une nouvelle version de votre système de production? Et que font-ils avec ces (binaire) les patchs qu'ils veulent vous fournir? Les décompiler? Il me semble que certains type de gestion de la S&S de l'équipe a créé un "processus" sans chercher à savoir s'il a effectivement rien.
OriginalL'auteur Stephen C
Vous pouvez mettre à jour l'ancien pot en faisant
jar uf jarfile classfile(s)
Ce sera de remplacer les anciens fichiers de classe avec le même nom avec de nouveaux auto patcher l'aide qui ne doit pas être difficile
OriginalL'auteur Epicblood
Pour le déploiement Java des applications de bureau., la meilleure option est généralement pour installer l'application. à l'aide de Java Web Start. JWS fonctionne sur Windows, OS X & *nix. Il inclut la mise à jour automatique.
Pas. JWS est pour les applications de bureau. seulement.
OriginalL'auteur Andrew Thompson
Prendre un coup d'oeil à Getdown — qui vise à fournir un système de téléchargement et de l'installation d'un ensemble de fichiers sur l'ordinateur de l'utilisateur et la mise à niveau de ces fichiers en tant que de besoin.
OriginalL'auteur Rage Steel