# JDK jar.exe in eigenen Projekten



## DigitalClark (14. Okt 2012)

Hallo liebes Java-Forum,

dies ist mein erster Post. Ich hoffe das ist das richtige Board.
Also:
Wenn man sich das JDK installiert, bekommt man ein Tool mitgeliefert, dass man per CMD aufrufen kann. Das Tool heißt "jar.exe" und wurde von Oracle selbst entwickelt (JDK halt). Hier mal ein Link zur Infoseite: 


Ich brauche dieses Tool für ein Projekt von mir (nicht mit Java programmiert), um mit .jar-Archiven zu arbeiten. Leider muss man sich vorher dafür JDK installieren, da ich aber nicht möchte, dass der Benutzer für mein Programm extra JDK installiert (weil mein Programm nur ein Launcher für ein weiteres Programm ist), wär' es doch gut, das Tool *jar.exe* und die *jli.dll* (wird von "jar.exe" bebraucht, damit es läuft) zu kopieren und selbst zu verwenden. Leider weiß ich nicht, unter welcher Lizenz Oracle dieses Tool/ JDK gestellt hat. Ich will keine copyright-Rechte verletzen. Das kopieren würde voraussetzen, dass ich diese beiden Dateien archiviere, erneut hochlade und verbreite (dabei mach ich keinen Profit). Ist es erlaubt, sich diese Dateien aus dem JDK zu nehmen? Bzw. wo kann ich mich über meine Rechte darüber informieren?

Vielen Dank,
*DigitalClark*.


----------



## Bernd Hohmann (14. Okt 2012)

JAR-Files sind normale ZIP-Files und können entsprechend auch mit ZIP/UNZIP bearbeitet werden. Lediglich für das Manifest muss man sich was einfallen lassen, aber das ist eine normale Textdatei und kann sonstwie gefüllt werden.

Du brauchst also jar.exe nicht wirklich.

Bernd


----------



## DigitalClark (14. Okt 2012)

Danke erstmal für deine Antwort, Bernd.

Auf diese Idee bin ich auch schon gekommen, ich habe da mit der 7zip command line gearbeitet. Leider konnte ich die .jar nicht ausführen (Invalid or corrupt jarfile - Fehler), jedoch funktioniert es mit jar.exe. Deshalb wollte ich mich mal informieren, ob man dieses Tool verwenden und kopieren darf.


----------



## Bernd Hohmann (14. Okt 2012)

DigitalClark hat gesagt.:


> Auf diese Idee bin ich auch schon gekommen, ich habe da mit der 7zip command line gearbeitet. Leider konnte ich die .jar nicht ausführen (Invalid or corrupt jarfile - Fehler), jedoch funktioniert es mit jar.exe. Deshalb wollte ich mich mal informieren, ob man dieses Tool verwenden und kopieren darf.



Du kannst mir gerne mal so ein mit 7zip umgebautes JAR geben und ich schau mir das Problem mal an.

Ich habe schon öfters bestehende(!) JAR-Archive via InfoZIP Kommandozeilentool aktualisiert und ausgeliefert ohne dass es Probleme gab. 

Zur Lizenz: Gemäss der "Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX" sehe ich kein Problem darin, jre.exe unmodifiziert und mit Verweis auf die genannte Lizenzvereinbarung in der Welt (abzüglich der "Schurkenstaaten") auszuliefern.

Wenn es Dich beruhigt: Lies einfach die genannte Lizenz durch (insbesondere §2 "LICENSE TO USE") und sage unter Zeugen laut "passt scho". Du kannst auch die Lizenz ausdrucken, auf jeder Seite einen Drudenfuß aufmalen und feierlich mit Blut eines Schnabeltieres zur Erneuerung des Bundes zwischen Dir und Oracle beträufeln wenn Du magst.

Dejure wird sich weder Oracle noch sonstwer daran stossen, dass Du "jre.exe" als Hilfsprogramm auslieferst - es sei denn, Du hast a) mehrere Millionen auf dem Konto und b) behauptest, dass "jre.exe" von Dir kommt. Dann könnte Oracle eventuell auf den Gedanken kommen Dich anzuzapfen 

Ansonsten füge an passender Stelle noch hinzu "Nutzt jre.exe aus dem Java SDK von Oracle" - soviel Anstand sollte sein.

Bernd


----------



## DigitalClark (14. Okt 2012)

Vielen Dank noch einmal Bernd.

InfoZIP wollte ich benutzen, aber als ich mir es herunterladen wollte, waren alle Mirrors offline (jetzt immernoch). Wenn man somit die Archive Problemlos aktualisieren kann, werde ich mal sehen, wo ich InfoZIP herbekomme.

Was Oracle angeht, werde ich mir vielleicht nochmal die Lizenztexte durchlesen, aber vorher versuche ich noch mit InfoZIP zu arbeiten...


----------



## troll (15. Okt 2012)

wie bereits erwähnt sind JAR-files ganz normale ZIP-files ... lediglich META-INF und alles was sich darin befindet hat für java speziell eine besondere bedeutung ...

um mit JAR-files arbeiten zu können bedarf es nur einer normalen LZMA-ZIP implementierung in der jeweiligen sprache ... und nicht gleich JAR.exe und das halbe JDK ...
zu mal viele der JDK-tools lediglich java.exe mit speziellen parametern und klassen callen die alle in tools.jar im jdk vorliegen (z.b. javac und jar machen dies) ...

das mit es mit 7zip probleme gibt leuchtet ein da du das archiv vermutlich auch mit dem 7zip-algo gespeichert hast, und nicht mit dem normalen LZMA-ZIP-algo den java benötigt ...
wenn du also mit fremd-programmen arbeitest solltest du auch darauf achten den richtigen datentyp und algo zu verwenden anstatt das halbe jdk mit in dein project packen zu wollen ...

du kannst ja gerne mal ausprobieren was passiert wenn du nur jar.exe und die nötige dll auf einen rechner kopierst der KEIN java installiert ist ... ich habe es jetzt zwar selbst nicht getest ... würde aber vermuten das du eine fehlermeldung bekommst das java nicht gefunden wurde ...

um dein problem also zu lösen suche dir einfach eine passende LZMA-ZIP-lib und arbeite damit ... deine frage hat an sich nichts mit java an sich zu tun ...


[ot]mal wieder so ne troll-frage die nichts mit java zu tun hat aber dennoch hier gestellt wird nur weil es irgendeine bezug zu java gibt ...
erlich leute ... lernt es mal bitte endlich ... nur weil irgendwo der name "java" fällt heißt das nicht dass das eigentlich problem auch was mit java zu tun hat[/ot]


----------

