Java.class.path anders nach clean&build

Hallo ihr!
Ich hänge seit einiger Zeit an folgendem Problem:
Zur Laufzeit meines Programms lese ich über
String libPath = System.getProperty("java.class.path");
Dateien aus. Das klappt wunderbar, allerdings nur innerhalb der IDE (Netbeans).
Drücke ich auf clean&build, enthält System.getProperty(“java.class.path”); lediglich meine finale .jar Datei, nicht die der Bibliotheken, auf die ich zugreifen muss.
Ich habe die Dateien schon im Project-Properties-Dialog unter “Libraries” den Compile-time Libraries hinzugefügt, geändert hat sich aber nichts.

Gibt es einen einfachen Weg, die jars, die die IDE unter “java.class.path” zur Laufzeit findet, so beizubehalten, dass sie nicht fehlen, wenn ich das Programm außerhalb der IDE ausführe?
Ideen?
Danke!

Was genau machst du mit dem libPath innerhalb deines Programms?

Außerhalb der IDE setzt man den Classpath üblicherweise beim Starten des Programms mit dem -cp Parameter. Da kannst du dann auch deine Bibliotheken mit aufnehmen.

Danke für die schnelle Antwort!

Abhängig von den libs gibt es Textdateien (in deren jars), die ich auslese.
Diese ändern sich manchmal, wenn es eine neue Version der Bibliothek gibt, oder ich zusätzliche aufnehme, das Programm liest sie alle aus und arbeitet mit ihnen weiter.
Das Problem mit dem -cp Parameter wäre, dass man die jar dann immer aus der command-line heraus starten müsste…

Du hast Textdateien in den Jar Files? Sowas liest man dann per getResource oder getResourceAsStream aus.
Kannst du vielleicht mal deine Verzeichnisstruktur posten und wie du die Textdateien momentan ausliest?

Folgendermaßen lese ich zur Zeit aus (try-catches der Lesbarkeit halber rausgenommen):

        Vector<String> paths = new Vector<String>();
        String libPath = System.getProperty("java.class.path");
        StringTokenizer st = null;
        if (System.getProperty("os.name").toLowerCase().indexOf("win") >= 0)
        {
            //if it's windows
            st = new StringTokenizer(libPath, ";");
        } else
        {
            //if it's linux
            st = new StringTokenizer(libPath, ":");
        }
        while (st.hasMoreTokens())
        {
            String next = st.nextToken();
            if (next.endsWith(".jar"))
            {
                paths.add(next);
            }
        }
        for (String s : paths)
        {
            URL jar = new File(s).toURI().toURL();
            ZipInputStream zis = new ZipInputStream(jar.openStream());
            while (true)
            {
                ZipEntry entry = zis.getNextEntry();
                if (entry != null)
                {
                    String e = entry.toString();
                    if (e.endsWith(".j3md"))
                    {
                        observerDialog.printMessage("Adding File: " + e);
                        materialFiles.add(e);
                    }
                    ...

In den .j3md (das sind die Textdateien) stehen einfach bestimmte Attribute, die ich auslese.

Was genau meinst du mit der Verzeichnisstruktur?
Die Libs, die ich auslese, sind in einem extra-Ordner innerhalb des Projektordners…

Ich habe es jetzt einfach gelöst, indem ich die .jar-Dateien manuell anspreche.
Danke für die Antworten!