# Jar Datei inkl. Zusatzdateien



## Kaspatoo (15. Jun 2011)

Hallo,

leider habe ich jetzt schon so viele Suchbegriffe probiert aber ich finde kein passendes Thema und bin sicher dass es das schon gegeben haben muss.

Ich habe folgendes Anliegen:
Ich habe ein einfaches Java Projekt mit ein paar java dateien, die greifen aber auf andere textdateien (properties, log.txt etc. zu). Diese Dateien habe ich in den Unterordnern configuration und log direkt unter dem Projekt liegen. Auf diese greife ich innerhalb von Eclipse (v. 3.6.2)  folgendermaßen zu:

```
new File("configuration/FTP_Config.properties")
```
.
Wenn ich nun mit rechtsklick auf mein Projekt auf Export "Runnavle Jar File" gehe, werden aber nur die für Eclipse nötigsten Klassen verwendet und daher nicht meine Zusatzdateien.

Aus der Schule her kenne ich das, dass für sowas meistens wohl ein Ant-Skript verwendet wird. Nur bin ich aber auf der Suche nach einer alternativen Lösung, eher soetwas wie "rechtsklick -> dem Buildpath hinzufügen -> fertig".

Ich bin dankbar für jede Hilfe bzw. nehme auch gerne Verweise auf andere Threads an.

lG


----------



## Wildcard (16. Jun 2011)

new File kann nicht funktionieren, weil in einem Jar keine Dateien sind, sondern nur Jar Entries. Du musst resourcen über den Classpath laden. Such mal danach, das wurde hier schon tausendfach gefragt.
Fürs Verpacken würde ich eher Maven verwenden, Ant ist IMO sehr low-level.


----------



## Kaspatoo (16. Jun 2011)

hey,

danke, classpath klingt schonmal nach nem ansatz

aber das würde doch bedeuten dass die propertydateien dann an einem festen ort liegen müssten, oder?
ich hätte das aber gerne, dass mein programm aus eben nur einer einzigen datei besteht und ich die von mir aus jeden tag an einen anderen speicherort verschieben können soll ohne iwas am classpath zu ändern
geht das jetzt überhaupt? wie funktioniert das denn dann bei den ganzen portable programmen?
oder müsste ich dann pfuschen und ne datenklasse erstellen die die einstellungen dann alle enthält?

Grüße


----------



## Wildcard (16. Jun 2011)

Man lädt über den Classloader und die Datei wird dabei üblicherweise mit ins jar gepackt.
getClass().getResourceAsStream als Stichwort.


> ich hätte das aber gerne, dass mein programm aus eben nur einer einzigen datei besteht


Bei kleinen Programmen geht das meist noch, aber sobald du externe Bibliotheken brauchst ist das kein praktikabler Weg mehr.


----------

