Wie können Sie neue java-Klassen zu den vorhandenen Klassen in der jar-Datei
Erstellte ich neue Module für die software in java geschrieben. Diese software gestartet wird die jar-Datei.Meine Klassen erweitern die Klassen in dieser software. Ich möchte ein plugin schreiben, das fügt neue Klassen in der jar-Datei. Ich weiß, wie ich zum extrahieren eines jar-Datei in das Verzeichnis und fügen Sie die jar-Datei verwenden java.util.jar Paket, aber da gibt es eine Menge von Dateien zu extrahieren aus der Datei, ist es möglich, neue Klassen hinzufügen, ohne das extrahieren von Dateien zu dem Ordner, der irgendwie direkt.
- Das erinnert mich an minecraft-modding. Aus Neugier, hast du das schreiben dieser software, die Sie versuchen, zu verlängern, sich selbst? Es gibt bessere Wege, es zu tun in diesem Fall, Verwendung von dynamischem laden von Klassen.
- Es gibt keine Notwendigkeit, ändern Sie eine vorhandene jar-Datei. Legen Sie einfach die Klassen in Ihren eigenen Glas, und stellen Sie sicher, dass beide Gläser sind auf dem classpath.
- Mögliche Duplikate vom gleichen user: stackoverflow.com/questions/11852954/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden Sie den folgenden Befehl
Ihre Frage zeigt, dass Sie dies tun wollen programmgesteuert, nicht die Verwendung der Kommandozeilen-
jar
tool.Aus der docs scheint es, dass Sie mindestens brauchen, um ein
JarInputStream
aus einer vorhandenen(jar-Datei)
, Durchlaufen Sie die Einträge mitgetNextJarEntry
, und schreiben Sie eineJarOutputStream
mit den Einträgen, auch durch eigene neue Dateien mit neuenJarEntry
Objekte für jede neue Datei.Hier Beispiel-code zum schreiben einer jar von Grund programmgesteuert, diese erweitern sollte nett zu Ihrem Fall, mit dem Unterschied, dass die meisten der
JarEntry
Objekte kommen aus einerJarInputStream
.Erlauben, fügen Sie neue files/update vorhandenen Dateien in der jar-ohne Extraktion.