Hi!
Ich hab ein Programm runtergeladen die *.jar Files machen soll.
Das Program(JarBilder0.8.0: http://jarbuild.sourceforge.net/ ) tu das, aber danach kann ich nicht diesen jar-files nicht starten, weisst jemmand was ich tun soll?
*.jar Files
-
-
Gestartet werden .jar normalerweise mit 'java -jar <name>.jar', wobei zu beachten ist, das es von Vorteil ist ein gueltiges, fuer sein Programm geeignetes Manifest zu haben, das man dem Archiv hinzufuegt.
Eine META-INF/MANIFEST.MF (ein Textfile) fuer ein Programm dessen Einsprungpunkt in der Klasse 'Test' des Packages 'Main' liegt koennte so aussehen:Da es in dem JarBuilder die Option gibt ein Manifest zu schreiben bzw. zu importieren, sollte es das auch schon gewesen sein, ansonsten kann man einfach und bequem mit
Codejar cvfm <archive name/path here>.jar ./META-INF/MANIFEST.MF -C <where my .class root is> <package name>
.jar Archive erstellen.
-
-
Zitat von a9bejo
google sagt:
weisst du ob ich einen Pfad setzen muss, weil das Befehl jar kann nicht gefunden werden -
Wenn der JDK z.B. in /home/<user>/jdk_<version> ist, dann sollte /home/<user>/jdk_<version/bin in den Pfad rein.
-
*.jars sind wozu da genau? sollen die ein java programm mit bestimmter struktur in einem file zusammenfassen? (a la zip), damits nicht so ein chaos gibt? und ist dann (a la c++) einfach "ausführbar" ?
-
Zitat von C++Redeemer
*.jars sind wozu da genau? sollen die ein java programm mit bestimmter struktur in einem file zusammenfassen? (a la zip), damits nicht so ein chaos gibt? und ist dann (a la c++) einfach "ausführbar" ?
so in etwa stimmt das.
* technisch gesehen sind jar-dateien nichts als zip archive.Du kannst ein jarfile auch erstellen, indem du alle resourcen in ein zipfile packst und dann in .jar umbenennst.
* logisch gesehen stellen sie komponenten/module/bibliotheken dar. Also der nächsthöhere layer über einem package.
* durch ein paar konventionen ('manifest') kann man ein paar zusätzliche bequemlichkeiten erreichen, wie zum beispiel eben das ausführen unter windows per doppelklick oder einen eigenen klassenpfad.
* man kann ein jar-archiv signieren.
früher, als man java noch viel für applets verwendet hat, gab es zudem den vorteil, dass ein browser ein jarfile schneller laden kann als ein dutzend .class dateien. Bei webstart anwendungen ist das eventuell heute auch noch relevant.
nach den jars gibt es dann übrigens noch weitere layer:
* .war-files sind komponenten(auch wieder zip), die zum grossteil aus jar archiven bestehen, und vor allem für web projekte relevant sind.
* und .ear files enthalten dann wiederum .war-files und kapseln enterprise java beans. das ist dann der layer mit dem komplexere verteilte systeme arbeiten.
-
ah sehr intressant, danke. so hab ichs mir vorgestellt =)
ich werd mal vorhandene jars unter die lupe nehmen und wie man diese menifest datei erstellt.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!