Resourcen laden in Wndows und Mac Application Bundle(.app)

DanielQ

Grünschnabel
Hallo
Ich habe mein Java Programm in folgende Ordnerstruktur gebracht:
bin/com/meinedomain/myApp/
Darin enthalten ist ein Ordner mit allen Bildern usw. Das klappt alles auf Mac und Windows so lange gut, wie ich es über Konsole/Terminal starte.

Nun möchte ich ein Mac Aplication Bundle machen, und das hat seine eigene Struktur (contents/resources/java)

Ich wäre froh, wenn mir jemand bei folgenden Fragen helfen könnte:
Wie integriert man diese spezielle bundle-Ordnerstruktur, so dass das Programm auf Windows und Mac laufen könnte? Ist es notwendig, dass ich die Ordnerstruktur ganz generell an der des Macbundles orientiere? Oder fragt man im Programm das OS ab, so dass ein entsprechend angepasster Pfad zum Laden der Bilder usw. verwendet wird?

Stehe da ein bisschen im Schilf, kennt sich einer von Euch damit aus?
Gruss, D
 
Danke für die Antwort - ich kenne das Tutorial, aber es hilft mir nicht. Das sagt mir zwar sehr schön, wie das Bundle aufgebaut sein muss. Aber ich weiss eben nicht, wie ich dann an die Files im Directory resources herankomme.
Zum einen liegen meine Klassen nicht in einem jar, und ich will auch keines (sind 35 Klassen). Zum anderen muss ich Bilder und eine Datenbank ansprechen. Ich krieg es aber nicht hin.
In der IDE habe ich diese Struktur:
workplace/
---classes/
------com/
-----------domain/
--------------------package/
-------------------------------Klassen 1 - n
------resources/
-----------images/
-----------DB/
Derby Datenbank ist ja auch ein directory.

Ausserhalb der IDE hätte ich
irgendeinDirectory/
---bin/
-------com/
------------domain/
---------------------package/
--------------------------------Klassen 1-n
-------resources/
------------images/
------------DB/

und im Mac .app wäre es
----Java/
und dann weiss ich nicht weiter.
Ich krieg schon die zwei Strukturen oben nicht zusammen, entweder kann ich das Programm in der IDE ausführen (mit getAbsolutePath()) oder ausserhalb in irgendeinem Ordner (dann liefert mir getAbsolutePath() aus irgendwelchen Gründen nur C:/irgendeinDirectory - und lässt das Directory "bin" glatt weg.
Wie bekomme ich das zusammen? Und wie verpacke ich es dann als Mac .app, ohne ein jar zu verwenden?
Gruss, D
 
...wer lesen kann ist klar im Vorteil: "You will need a Resources directory with a Java subdirectory..." - Java subdir eingerichtet, den ganzen bin/usw. da 'rein, dann lässt sich die classpath-Angabe $JAVAROOT verwenden und ES LÄUFT. Das Tutorial oben ist also die Lösung bzw. ist die geeignete Hilfe zur Lösung.

Vielen Dank an alle auch für super-input auch an anderer Stelle (z.B. zum Verwenden der Datenbank, zum finden der Files und Folder usw.)
 
Zurück