Ant manifest file

Von: , 08.06.2011 17:10 Uhr

Hallo,

meine Frage ist wie folgt:
Ich habe ein ANT File geschrieben welches folgende Ordner-Struktur auswirft:

D:\Projekt
│ prgcli.jar
│ prggui.jar

├───bin
│ bibliotheken.jar

└───layouts
layout1.lli
layout1.lli
layout1.lli
layout1.lli


Das mache ich wie folgt:

Ich packe mittels
<jar destfile="${build.dir}/bin/bibliotheken.jar" filesetmanifest="mergewithoutmain">

alle dateien aus meinem ursprünglichen ordner "lib" zusammen , dann kopiere ich die nötigen layouts in den layout Ordner, und dann builde ich über 2 task die eigentlich ausführbare jar:

<target name="bGUI" depends="prepare">
<jar destfile="${basedir}/build/prggui.jar" filesetmanifest="mergewithoutmain">
<manifest>
<attribute name="Main-Class" value="path.of.my.main.class.prgMain"/>
<attribute name="Class-Path" value="${base.dir}/build/bin"/>
</manifest>
</jar>
</target>

Nun habe ich 2 Fragen / Probleme:

Ich bekomme immernoch den Fehler das er die Main-Class nicht finden kann
und b) wie vermittle ich dem Programm das er bitte den Ordner layouts nun woanders suchen soll

Also das vorher sieht der Ordner ja aus wie :

bin
lib
ressources
src

Und irgendwo unterhalb von ressources is da eigentlich der ordner "layouts".

Also Bilder die in die Applikation eingebunden werden, sind weiterhin in der prggui.jar aber die layout-dateien halt nicht mehr.


ich hoffe das Problem ist verständlich genug ^^°
Vielen Dank.

4 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: Ant manifest file

    Hallo

    1. Main methode kann nicht gefunden werden? Was steht genau als Fehler da?

    2.) getClass().getResourceAsStream("resources/layouts/layout1.lli"); // oder vielleicht ohne "resources"

    mfg

    • Antwort von nach 2 Stunden 0 hilfreich
      Re^2: Ant manifest file

      die genaure fehlermeldung lautet :

      Exception in thread "main" java.lang.NoClassDefFoundError: prggui/jar
      Caused by: java.lang.ClassNotFoundException: prggui.jar
      at java.net.URLClassLoader$1.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      Could not find the main class: prggui.jar. Program will exit.

      Der Pfad der main-class ist aber sehr sicher richtig.
      Im Quellcode beziehe ich mich zB auf eine zu ladende lli Datei :
      getClass().getResource("/locations/layouts/"+lliName+".lli").getFile());

      Jedoch ist ja die lli-Datei NICHT innerhalb einer jar Datei , sondern liegt frei im Verzeichniss (damit der Anwender selbständig lli's hinzufügen kann)

      Wie "sage" ich das denn der jar datei, bzw dem Programm, das er die llis nicht innerhalb der jar suchen muss sondern unter "rootDir/layouts/"

      ^^°

      • Antwort von nach 4 Stunden 0 hilfreich
        Re^3: Ant manifest file

        Wenn du kein "geheimes" Projekt machst, dann schick mir das ganze Projekt als zip datei (lade es irgendwo hoch). Dann kann ich am einfachsten die ant Datei korrigieren und notfalls kommentare dazufügen.

        mfg

                • Antwort von - abgemeldetes Mitglied - nach einem Tag 0 hilfreich
                  Re: Ant manifest file

                  ... Ich hab leider keine Ahnung - Seit Jahren nicht mehr angefasst. Frag weiter ...

                  Jetzt auf diese Frage antworten.