jar datei dekopilieren und code ersetzen?

Transmitter

Erfahrenes Mitglied
hi!

ich hab mal ne frage:

ich habe eine fast 2mb große *.jar datei ..

wenn ich die mit meinem jbuilder öffnen will, bekomme ich noch weitere "subdirectories" oder packages oder was auch immer "in" dieser jar angezeigt ..

da gibts eine *.java datei die ich gerne durch eine vorhandene ersetzen möchte .. wie kann ich dass denn machen?

weil wirklich öffnen kann ich die *.jar nicht, ich komme nur bis zu dem öffnen dialog :(

in der help steht nur was von "create native executable files" .. und da ist jar erklärt, aber nicht wie ich jetzt vorgehen sollte :(

kann mir da jemand helfen?

thx schon mal
cu - transmitter
 
Jar ist nichts anderes
als Zip.

Du kannst diese mit dem
programm jar entpacken.

Dazu gehst du auf die konsole und startest
%JAVA_HOME%\bin\jar.exe

Code:
Syntax: jar {ctxu}[vfm0M] [JAR-Datei] [Manifest-Datei] [-C dir] Dateien ...
Optionen:
    -c  neues Archiv erstellen
    -t  Inhaltsverzeichnis f³r Archiv auflisten
    -x  benannte (oder alle) Dateien aus dem Archiv extrahieren
    -u  vorhandenes Archiv aktualisieren
    -v  ausf³hrliche Ausgabe f³r Standardausgabe generieren
    -f  Namen der Archivdatei angeben
    -m  Manifestinformationen aus angegebener Manifest-Datei einbeziehen
    -0  nur speichern; keine ZIP-Komprimierung verwenden
    -M  keine Manifest-Datei f³r die Eintrõge erstellen
    -i  Indexinformationen f³r die angegebenen JAR-Dateien generieren
    -C  ins angegebene Verzeichnis wechseln und folgende Datei einbeziehen
Falls eine Datei ein Verzeichnis ist, wird sie rekursiv verarbeitet.
Der Name der Manifest-Datei und der Name der Archivdatei m³ssen
in der gleichen Reihenfolge wie die Flags ''m'' und ''f'' angegeben werden.

Entpackste das jar änderst dein java file compilierst das file und ersetzt das class file.
Und packste wieder ins jar
 
ich habe die dateien jetzt erst entpackt, und die *.java in das passende verzeichnis kopiert.

wenn ich die zu einer *.class datei kompilieren will, bekomme ich aber nur fehlerausgaben vom compiler ...

wohl wegen irgendwelchen abhängigkeiten :(

weißt du da weiter?
 
wo wird der denn angegeben?

aber die *.java ist im richtigen pfad, ja ..

weiß aber nicht in welchen *.class was drinne steht von dem pfad zu der GeneratorPHP

oder was meinst du jetzt?
 
Original geschrieben von Transmitter
wo wird der denn angegeben?

aber die *.java ist im richtigen pfad, ja ..

weiß aber nicht in welchen *.class was drinne steht von dem pfad zu der GeneratorPHP

oder was meinst du jetzt?

Nun der Classpath ist eine Umgebungsvariable von Windows bzw Linux und wird gesetzt:

windows:
set CLASSPATH=%CLASSPATH%;[pfad zum projekt]

linux:
export CLASSPATH=$CLASSPATH:[pfad zum projekt]

Du solltest die Packete beachten sprich den Classpath auf den root des Projektes setzen.
mehr zum Kompilieren und Classpath:

http://www.java-tutor.com/

und

http://www.javabuch.de/


bzw:
http://www.galileocomputing.de/openbook/javainsel2/java_250000.htm
 
nö, irgendwie klappt das ganz und gar nicht :(

ich kann entweder den classpath als systemvar setzen auf
c:\argouml
oder bei kompilieren mit angeben ..

auch wenn ich als javac -classpath argouml.jar kompiliere bekomme ich immer den gleichen fehler:

Exeption in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main

:mad: ich verzweifel hierdran noch :(

wo muss denn die zu kompilierende *.java datei liegen?

ich habs im root dir von argouml probiert, und auch in dem subdir von argouml, wo die hin soll.

woran kanns denn jetzt noch liegen?
 
Original geschrieben von Transmitter
nö, irgendwie klappt das ganz und gar nicht :(

ich kann entweder den classpath als systemvar setzen auf
c:\argouml
oder bei kompilieren mit angeben ..

auch wenn ich als javac -classpath argouml.jar kompiliere bekomme ich immer den gleichen fehler:

Exeption in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main

:mad: ich verzweifel hierdran noch :(

wo muss denn die zu kompilierende *.java datei liegen?

ich habs im root dir von argouml probiert, und auch in dem subdir von argouml, wo die hin soll.

woran kanns denn jetzt noch liegen?

Gegenfrage:
Kannst du Java Programmieren?
 

Neue Beiträge

Zurück