Relative Pfadangaben innerhalb von .jar Archiven

Status
Nicht offen für weitere Antworten.

Das Brot

Mitglied
Hi, das ist zwr mein erster Beitrag aber ich bin öfters hier, denn wenn ich mal Probleme habe schau ich eh meistens bei Google und lande oft hier.

Blos hab ich jetzt ein Problem bei dem ich nicht ganz durchsteige und jetzt wirklich mal fragen muss^^.

Wir haben an der Schule eine Projektarbeit und ich und mein Partner programmieren ein Memory Spiel. Das Ganze funktioniert auch wunderbar, doch nervt es immer die ganzen Projektdateien hochzuladen und hin und her zu schicken. Also wollten wir das in jar Archive packen.

So, zum eigentlichen Problem:
Ich weis das man mit vielen IDEs die jar Archive automatisch erstellen kann, aber ich bin nicht der typ dafür der einfach programmiert und weis dann nicht wies funktioniert, ich kopiere auch nie Quellcodes aus dem Internet.

Mit der Kommandozeile funktioniert das auch Problemlos, aber mein Problem liegt in den Pfadangaben der Main-Class und des Class-Path.


Mein Project hab ich mit JCreator erstellt und der Projektordner ist so aufgebaut:
bild1w.jpg


In dem Ordner classes sind natürlich meine Klassen. Ich hab sie allerdings in kein Package gepackt. Sollte ich das machen? Ich mein es ist ja nur ein kleines Projekt. Die Klassen greifen noch auf Bilder und files zu, in files liegen Textdokumente, wie z.B. Spielanleitungen etc, die ausgelesen werden.

Das ganze packe ich jetzt folgendermaßen in ein .jar Archiv:
bild2c.jpg


Wie gebe ich jetzt in der MANIFEST.MF an, dass er die Klasse Memory6_0 aus dem Ordner classes benutzen soll. Ich hab gelesen die Pfadangaben sind relativ zum Ort andem sich das .jar Archiv befindet, doch das bringt mir herzlich wenig, wenn ich es verschicken will, es soll ja die archivierten Klassen benutzen. Ich bin ziemlich ratlos und weis nicht genau wie ich das in der MANIFEST.MF Datei angeben soll, dass er die Klassen benutzen soll^^

Sollte ich was an der Strukturierung meines Projekts arbeiten? Bin für Kritken offen



mfg Brot
 
Hi,

es gibt hier einen sehr guten FAQ Beitrag, der das Thema behandelt.
Du musst das jar-File Deinem Projekt hinzufügen und als jar-exportieren.
Ich weiß nicht ob eclipse zB das mittlerweile hinkriegen ein jar-File zu erstellen in das Fremdbibliotheken eingebunden sind. Falls nicht kann ich FatJar empfehlen. Musste mal nach googlen, das kann das.

greetz
SLi
 
Das geht so nicht. Du darfst das nicht als Pfade verstehen, zip Archive sind flach.
Auch gibst du für die main class keinen Pfad an, sondern einen Klassenname (voll qualifiziert, also mit package).
Beim zusammenpacken werden die Einträge auch entsprechend benannte dein/package/DeineClass.
Ein 'Verzeichnis' classes funktioniert da nicht, wenn nicht zufällig dein package auch so heißt.
Generell solltest übrigens immer packages verwenden.
 
Ok also ich bin jetzt mal hergegangen und habe Alle Klassen auser die Klasse Memory7_0 in ein package namens memory7 gepackt. Die Klasse Memory7_0 import das package und hat die main Methode, inder eig nur ein Steuerungsobjekt erstellt wird.

Ich hab das ganze jetzt so zusammengepackt:
bild3tkm.jpg


Im Manifest steht die Memory7_0 als Main-Class, Class-Path hab ich nichts angegeben. Das ganze funktioniert auch soweit

Blos jetzt hab ich noch 2 Ordner "Bilder" und "files" die das Programm ja braucht. Muss ich die Dateien jetzt wiederum in ein .jar Archiv packen und das dann zu meinem Ausführbarem .jar Archiv Memory7_0. jar hinzufügen?

Mir ist im Moment nicht ganz klar wie ich den Klassen sagen soll, sie sollen Dateien aus ihrem eigenem Archiv benutzen. (über ne einfache Pfadangabe)

mfg brot
 
angenommen die Klasse die z.b. ein Bild braucht liegt in dem package memory7 welches im archiv enthalten ist. Direkt daneben liegt der Ordner mit den Bildern.

Wie muss die Pfadangabe lauten? "../Bilder/b1.gif" oder "Bilder/b1.gif"

Von wo "startet" der relative pfad? Von der klasse oder allgemein einfach vom jar so^^ schwer auszudrücken, ich weis auch nicht.

mfg Brot
 
^^ das muss ich auch immer testen...
zur not einfach
Code:
/Bilder/test.jpg
 
Ok hab das alles jetzt hinbekommen.

Mein Fehler war , dass ich den Slash VOR dem pfad vergessen hab. Aber selbst dann hat es bei mir nicht gleich geklappt:

Ich wollte .GIF bilder einfügen hatte aber .gif in der URL stehen. Das ging auch solange wie ich es nicht in einer URL stehen hatte. Bei der Umstellung von String auf URL gings nicht mehr.

Danke euch

mfg Brot
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben