Wie packe ich ein Java-Programm?

8

Kürzlich habe ich einen Fix auf eine Java-Desktop-Anwendung angewendet. Ich habe das getan, indem ich den Code in einer meiner Klassen geändert, ihn kompiliert und das neue Jar an die Produktionsumgebung gesendet habe.

Ich werde jetzt gefragt, ob es möglich ist, das JAR einfach in der Produktion zu patchen, indem ich einfach die kompilierte Klasse, die ich repariert habe, kopiere oder sogar ein Patch-Programm / -Skript erstelle, das nur die modifizierten Dateien aktualisieren kann. p>

Zusätzliche Informationen:

  1. Der Patch muss zur Laufzeit nicht angewendet werden. Das heißt, der Patch kann als separates Programm oder Aktivität ausgeführt werden. Mein altes Programm muss nicht automatisch aktualisiert werden.
  2. Kann dies auch mit Web-Anwendungen (WAR-Datei) gemacht werden?

Die beste Antwort, die ich kam, ist diese, aber es ist 2 Jahre alt. Patch-Java-Software

Ist meine Anforderung selten? Ich habe noch nie ein Tutorial zum Patchen einer Java-Anwendung gesehen.

    
Jefrey Valencia 10.07.2013, 00:40
quelle

4 Antworten

7
  

Ich werde jetzt gefragt, ob es möglich ist, das JAR einfach in der Produktion zu patchen, indem ich einfach die kompilierte Klasse, die ich repariert habe, kopiere oder sogar ein Patch-Programm / -Skript erstelle, das nur die modifizierten Dateien aktualisieren kann. p>

Ja. Es ist möglich, eine JAR-Datei mit jar -u zu patchen. Es ist auch möglich, eine WAR-Datei auf die gleiche Weise zu patchen.

Aber ich würde es nicht empfehlen. Die JAR- oder WAR-Datei sollte die Bereitstellungs- / Verwaltungseinheit sein. Wenn Sie JAR / WAR-Dateien auf Produktionsservern patchen, ist es schwierig zu verfolgen, was tatsächlich wo verwendet wird. Wenn Sie nicht vorsichtig sind, herrscht Chaos und Verwirrung.

Die einzige Situation, in der das Patchen unvermeidbar ist, ist, wo Sie eine Bibliothek eines Drittanbieters haben oder etwas, das Sie nicht aus der Quelle erstellen können, aber Sie müssen es trotzdem ändern. Aber selbst in diesem Fall ist es am besten, JAR / WAR auf Ihrer Build-Plattform zu modifizieren und das modifizierte JAR / WAR zu implementieren. Es ist keine gute Idee, JARs, WARs oder bereitgestellte Webapps auf der Produktionsplattform zu patchen.

  

Ist meine Anforderung selten?

Ja. Es gibt einen besseren Weg ...

  

Ich habe noch nie ein Tutorial zum Patchen einer Java-Anwendung gesehen.

Nicht überraschend, da es einen besseren Weg gibt ...

    
Stephen C 10.07.2013, 02:07
quelle
4

Sie können das alte jar aktualisieren, indem Sie jar uf jarfile classfile(s)

ausführen

Dies ersetzt alte Klassendateien mit gleichen Namen durch neue, so dass ein automatischer Patcher verwendet wird, der nicht schwer sein sollte

    
Epicblood 10.07.2013 00:48
quelle
2

Für die Bereitstellung von Java-Desktop-Apps ist es normalerweise die beste Option, die App zu installieren. Verwenden Sie Java Web Start . JWS funktioniert unter Windows, OS X & amp; * nix. Es enthält eine automatische Aktualisierung.

  

Kann dies auch mit Web-Anwendungen (WAR-Datei) gemacht werden?

Nein. JWS ist für Desktop-Apps. nur.

    
Andrew Thompson 10.07.2013 00:48
quelle
0

Werfen Sie einen Blick auf Getdown - mit dem Ziel, ein System zum Herunterladen und Installieren einer Sammlung von Dateien bereitzustellen auf dem Computer eines Benutzers und aktualisieren Sie diese Dateien nach Bedarf.

    
Rage Steel 24.10.2013 08:33
quelle

Tags und Links