# Java-Projekt in ausführbare Datei packen



## fbn (9. Dezember 2008)

Hallo,

ich habe in Eclipse ein Java-Projekt mit mehreren Klassen, XML-Konfigurationsdateien und eingebundenen JAR-Dateien, z.B. für Oracle JDBC-Verbindung.

Das ganze läuft über Eclipse ohne Probleme, da Eclipse sich ja um Classpath usw. kümmert. Das Projekt sollte aber jede Nacht automatisch per Cronjob gestartet werden, d.h. Eclipse hilft hier nicht mehr.

Meine Frage ist jetzt, wie ich das Java-Projekt in eine ausführbare Datei packen kann?

Ich stelle mir das so vor, dass alle benötigten Libraries (also z.B. der Oracle-Treiber) und die eigenen Klassen in ein JAR-File gepackt werden. Dieses kann dann mit java -jar file.jar aufgerufen werden und startet die main Methode. Die XML-Konfigurationsdateien sollten wenn möglich ausserhalb des JAR-Files liegen.

Ist sowas überhaupt möglich und wenn ja, wie?

Besten Dank,
  Frank


----------



## joschi70 (9. Dezember 2008)

Hi Frank,

das ist nicht so einfach, da der Java Classloader keine JARs laden kann, die in einem JAR File enthalten sind.

Vielleicht hilft Dir der Link weiter:

http://one-jar.sourceforge.net/

Gruß
joschi


----------



## woody100 (9. Dezember 2008)

Hierbei sollte dir das Eclipse Plugin Fatjar weiterhelfen.

http://fjep.sourceforge.net/

habe es selber schon verwendet und ist bei mir super gegangen!

mfg
harry


----------



## fbn (9. Dezember 2008)

Super, danke euch beiden!


----------



## The_S (9. Dezember 2008)

Alles in eine Datei?  Da drängen sich m ir aber ein paar 'Fragen auf:

1.) Darfst du das überhaupt (rechtlich)?
2.) Schon mal irgend ein "größeres" Programm gesehen, dass aus einer riesigen Binary (z. B. .exe) und sonst keinen Dateien besteht? Falls nein, überleg mal warum
3.) Wie bewerkstelligst du Updates? Willst du da wikrlich die ganzen X-MB neu verteilen, oder ist es nicht evtl. doch schöner, wenn nur eine KB-große Datei ausgetauscht werden soll

Trifft jetzt evtl. nicht alles auf deinen speziellen Fall zu, aber mal so generell ...


----------



## fbn (9. Dezember 2008)

The_S hat gesagt.:


> Alles in eine Datei?  Da drängen sich m ir aber ein paar 'Fragen auf:
> 
> 1.) Darfst du das überhaupt (rechtlich)?
> 2.) Schon mal irgend ein "größeres" Programm gesehen, dass aus einer riesigen Binary (z. B. .exe) und sonst keinen Dateien besteht? Falls nein, überleg mal warum
> ...



1. Ja, darf ich.
2. Das JAR-File wird nicht sehr gross, so riesig ist das Projekt nicht.
3. Das JAR-File neu erstellen und an das Ziel kopieren. Genau das ist ja der Grund, warum ich ein JAR-File brauche, und keine 25 Classpath-Eintraege, Libraries usw. Der Admin, der den Cronjob betreut, ist froh um jede Datei weniger.


----------



## The_S (10. Dezember 2008)

Na denn ist ja gut, war auch mehr eine generelle Anmerkung (erkennbar an dem Nachsatz  ).


----------

