dudleybrooks
Originalplakat- 04.04.2011
- San Francisco
- 14. April 2011
jiminaus
- 16. Dezember 2010
- Sydney
- 15. April 2011
'Eine einzelne Zeile in einer .jar-Datei ändern' ist im Kontext einer .jar-Datei nicht direkt sinnvoll. Wenn Sie uns genau sagen, was Sie mit dieser .jar-Datei machen möchten, können wir Ihnen möglicherweise sagen, welche Mac OS X-Tools/Programme Sie verwenden können und wie. m
Mufflon
- 15.09.2006
- 15. April 2011
Es gibt wirklich drei Phasen: Extraktion, Modifikation und Zusammenbau.
Das Extrahieren ist einfach: Rechtsklick und Aufheben aufheben (afaik).
Modifikation: Wenn es das Manifest ist (wick-Klasse zum Ausführen usw.), dann ist es einfach, aber die Java-Dateien werden in .class-Dateien kompiliert und müssen vor der Modifikation zerlegt werden.
Um alles zusammenzusetzen, googeln Sie den Befehl 'jar' für das Terminal.
Wenn es FOSS ist, ist es besser und einfacher, aus dem Quellcode zu kompilieren; wenn nicht, dann finde ich es nicht 100% legitim. D
dudleybrooks
Originalplakat- 04.04.2011
- San Francisco
- 15. April 2011
Ich habe diese Änderung viele, viele Male unter Windows vorgenommen (nämlich jedes Mal, wenn ich ein Upgrade heruntergeladen habe, wodurch meine vorherige Änderung natürlich gelöscht wurde). Die Person, die die Änderung empfahl, empfahl auch einen (Un-)Archivierer namens IZArc, in dem der gesamte Prozess von IZArc aus durchgeführt werden könnte -- öffnen (dearchivieren) Sie die .jar-Datei, suchen Sie die .js-Datei, bearbeiten Sie die Zeile ... Wenn Sie dann auf Beenden klicken, wird alles in den archivierten Zustand zurückgesetzt.
Mir ist bewusst, dass ich die .jar-Datei mit jedem Unarchiver dearchivieren und die .js mit jedem Texteditor bearbeiten kann. Ich denke, meine Sorge ist, dass ich, da ich kein Programmierer bin, beim erneuten Archivieren etwas Schädliches tun könnte - nicht alle relevanten Dateien archivieren oder zu viele Dateien archivieren oder so.
Meine Frage ist also: Gibt es einen Archivierer (hoffentlich im Betriebssystem), der all dies von sich aus erledigt, damit ich weiß, dass die endgültige .jar genau die Dateien enthält, die sie enthalten sollte? Oder was muss ich tun, wenn dies nicht der Fall ist, um sicherzustellen, dass ich es ordnungsgemäß erneut archiviert habe? Mir ist klar, dass dies in diesem Forum eine komplette Anfängerfrage ist.
nicht nur jay
- 19.09.2003
- Kanada, oder?
- 15. April 2011
chown33
Moderator
Mitarbeiter- 9. August 2009
- die abgründige Ebene
- 15. April 2011
notjustjay sagte: Nun, wenn .jar-Dateien einfach ZIP-Dateien mit einer anderen Erweiterung sind, können Sie sie mit den Befehlen 'zip' und 'unzip' frei vom Terminal zippen und entpacken.
Oder verwenden Sie den Befehl 'jar', der ausdrücklich zu diesem Zweck geschrieben wurde und die korrekte Reihenfolge der Manifeste beibehält (die normalerweise als erster Eintrag oder höchstens als einer der ersten Einträge vorhanden sein müssen).
Ich bin mir ziemlich sicher, dass der Befehl jar standardmäßig installiert ist. Dies sollte auch für 10.7 Lion gelten.
nicht nur jay
- 19.09.2003
- Kanada, oder?
- 15. April 2011
chown33 sagte: Oder verwenden Sie den 'jar'-Befehl, der ausdrücklich für diesen Zweck geschrieben wurde und die korrekte Reihenfolge für Manifeste beibehält (die normalerweise als erster Eintrag oder höchstens als einer der ersten vorhanden sein müssen).
Ich bin mir ziemlich sicher, dass der Befehl jar standardmäßig installiert ist. Dies sollte auch für 10.7 Lion gelten.
Ach, noch besser. Danke, wusste das nicht.
PilotError
- 12. April 2006
- Long Island
- 15. April 2011
$jar -xvf jarfile.jar ** Extrahiert die Dateien
** Datei bearbeiten **
$jar -cvf jarfile.jar ** Erstellen Sie die neue Jar-Datei
dudleybrooks
Originalplakat- 04.04.2011
- San Francisco
- 15. April 2011
chown33
Moderator
Mitarbeiter- 9. August 2009
- die abgründige Ebene
- 15. April 2011
dudleybrooks sagte: Danke. Die Methode von PilotError war unkompliziert und erfolgreich – keine Softwarefehler, Anfängerfehler oder sogar Pilotenfehler. Aber es hatte immer noch mehr Schritte als ich früher in Windows brauchte: Wechseln vom Terminal nach dem Dearchivieren auf den Desktop, um einen Editor zu verwenden (mein Fehler, zugegeben, den/die Unix-Editor(en) nicht zu kennen, auf die Terminal Zugriff hat) , dann zurück zum Terminal zum erneuten Archivieren -- plus die weiteren Tastenanschläge, die für die Unix-Befehle benötigt werden. Ich würde immer noch gerne einen Editor finden, der *alles* in einem Programm erledigt, wie IZArc in Windows: Strg-Öffnen, Bearbeiten, Strg-Schließen -- zip-zip (Wortspiel beabsichtigt)!
Ich kenne kein Tool, das alles kann. Ehrlich gesagt ist dies das erste Mal, dass ich jemanden gefragt habe, wie man eine Datei in einem JAR unter Mac OS bearbeitet, also vermute ich, dass es keinen großen Zielmarkt gibt.
Sie können Befehlszeilen in das Terminal einfügen, also speichern Sie die Befehle einfach in einer Textdatei, kopieren Sie sie und fügen Sie sie ein. Keine Eingabe erforderlich.
Folgendes würde ich ungefähr in der Textdatei speichern:
Code: |_+_| Sie sollten die jarfile.jar natürlich in die tatsächliche jar-Datei ändern, die Sie haben.
Ich habe ## angezeigt, weil dies das eigentliche Kommentarzeichen für die Bash ist.
Ich habe auch einen 'open -e'-Befehl mit einem Pfadnamen angezeigt, den Sie ersetzen müssen. Das open -e öffnet die benannte Datei in TextEdit.app. Wenn Sie stattdessen einen anderen Editor bevorzugen, können Sie 'open' anweisen, ihn stattdessen zu verwenden. Hier ist die Manpage für den Befehl 'open':
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
Schauen Sie sich insbesondere die Optionen -a und -b an.
Schließlich können Sie dort andere Befehle eingeben, wie zum Beispiel 'cd someDir' oder was auch immer Sie wollen.
Sie könnten wahrscheinlich ein 'sed'-Skript schreiben, um die Ersetzung durchzuführen, sodass Sie die Datei überhaupt nicht manuell bearbeiten müssen. Dann könnten Sie das Ganze in ein Shell-Skript umwandeln, das in ein AppleScript einpacken und als Droplet speichern. Dann legen Sie in Zukunft einfach Ihre ursprüngliche App auf das AppleScript-Droplet ab und alle Änderungen werden automatisch durchgeführt. Sie müssten jedoch all diese Dinge schreiben und debuggen, und es würde wahrscheinlich Stunden länger dauern, als nur ein Kopieren/Einfügen durchzuführen, wenn die App aktualisiert wird.
Wenn die Änderung am JAR etwas ist, das der Anbieter bereitstellen sollte, sollten Sie wahrscheinlich einen Fehlerbericht gegen die App einreichen. Denn die sauberste Lösung ist, es gar nicht selbst reparieren zu müssen.
PilotError
- 12. April 2006
- Long Island
- 15. April 2011
Es gibt Zip-Dienstprogramme unter OS X, aber zugegeben, ich verwende OS X nicht wie Windows. Ich bin sicher, Sie könnten eines der Programme ausfindig machen, mit denen Sie dasselbe tun können, aber für das, was hier benötigt wurde, lohnte es sich nicht, danach zu suchen. D
dudleybrooks
Originalplakat- 04.04.2011
- San Francisco
- 16. April 2011
Chown33: Danke für die Ratschläge zur Automatisierung und die damit verbundenen Details. Ich werde sie versuchen. OMG, ich könnte Programmierer werden!
Es ist etwas *ich* denke, sollte behoben werden, aber es ist kein Fehler: Thunderbird hat eine erweiterte Suche für E-Mail-Adressen, die möglicherweise mehrere Adressen zurückgibt. Wenn Sie auf 'Schreiben' klicken, werden sie alle in die Felder 'An' eingefügt (ohne andere Option). Die Änderung führt dazu, dass sie zur besseren Netiquette in 'BCC'-Felder eingefügt werden. TB 1.x hatte diese Option früher, hat sie aber in 2.x verloren. P
peregin55
- 25. Februar 2008
- 8. Mai 2011
Unter Linux und Mac OS X verwende ich Emacs, um Dateien in einem JAR zu bearbeiten. Tippe einfach:
emacs somejar.jar
Sie können dann alle Dateien im JAR durchsuchen, öffnen, speichern, was auch immer mit Standard-Emacs-Befehlen. Alle Änderungen, die Sie vornehmen, werden automatisch auf das JAR angewendet (Sie müssen nichts manuell entpacken)
dudleybrooks
Originalplakat- 04.04.2011
- San Francisco
- 8. Mai 2011
peregin55
Das ist gut zu wissen.
-
Dudley B
große Katastrophe
- 14. Januar 2010
- 8. Juni 2012
Irgendwelche Ideen?
TopHatProductions115
- 22. August 2016
- 10.11.2016
pilotError sagte: Oder Sie können den jar-Befehl verwenden. Die Parameter sind genau wie die Befehlszeilen-Zip-Dienstprogramme
$jar -xvf jarfile.jar ** Extrahiert die Dateien
** Datei bearbeiten **
$jar -cvf jarfile.jar ** Erstellen Sie die neue Jar-Datei
Funktioniert dies für signierte Java-Archive?
michaelwarne
- 11. November 2016
- 11. November 2016
- Navigieren Sie vom Terminal zum Speicherort der Datei.
- Geben Sie vim name.jar ein
- Wählen Sie die Datei aus, die Sie ändern möchten, und drücken Sie die Eingabetaste
- Bearbeiten Sie die Datei und drücken Sie Esc und :wq! zu speichern und zu beenden.
okieiam
- 17.12.2016
- 18. Dezember 2016
jtara
- 23. April 2009
- 21. Dezember 2016
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions C
Clovr
- 13. November 2018
- 13. November 2018
michaelwarne sagte: Sie können den vim-Editor verwenden, um die Dateien in komprimierten Textdateien zu bearbeiten.können wir das nicht mit einer bash automatisieren? Es wäre sehr hilfreich, wenn Sie dadurch aufklären würden.
Hoffe das hilft.
- Navigieren Sie vom Terminal zum Speicherort der Datei.
- Geben Sie vim name.jar ein
- Wählen Sie die Datei aus, die Sie ändern möchten, und drücken Sie die Eingabetaste
- Bearbeiten Sie die Datei und drücken Sie Esc und :wq! zu speichern und zu beenden.
Beliebte Beiträge