# Eclipse Problem mit jar Datei?



## berndoa (26. Okt 2022)

Hallo, ich habe folgende Fehlermeldung beim Ausführen:


```
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for C:\Users\d-sch\Desktop\Eclipse mit Java 18\workspace\MinMax Tripel\lib\jOpenDocument-1.3.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: JDOMAbout$Info.class found in top-level directory (unnamed package not allowed in module)
```
Mein Code ist diese Klasse hier:


```
package b;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

import org.jopendocument.dom.spreadsheet.Sheet;
import org.jopendocument.dom.spreadsheet.SpreadSheet;

public class NumberList {
    int length = nOverK(49, 6);
    Number[] list = new Number[length];

    public NumberList() {
        init();
        fillInConnections();
        copyToFile();
    }

    public static void main(String[] args) {
        NumberList a = new NumberList();
        System.out.println("nOverK(" + 49 + "," + 6 + ")=" + a.nOverK(49, 6) + "!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        System.out.println("NumberList!");
        //a.printNumbers();
        System.out.println("NumberList!");
    }

    public void init() {
        NumberGenerator numg = new NumberGenerator(6, 49);
        for (int i = 0; i < length; i++) {
            list[i] = new Number(numg.getNumber());
        }
    }

    public void printNumbers() {
        for (Number a : list) {
            a.print();
        }
    }

    public void copyToFile() {
        File file = new File(".\\Connections.ods");

        Sheet sheet;

        try {
            // Getting the 0th sheet for manipulation| pass sheet name as string
            sheet = SpreadSheet.createFromFile(file).getSheet(0);

            for (int zeile = 0; zeile < length; zeile++) {
                sheet.getCellAt(0, zeile).setValue(zeile);
                sheet.getCellAt(1, zeile).setValue(Arrays.toString(list[zeile].numbers));

                for (int coneintrag = 0; coneintrag < list[zeile].connections.size(); coneintrag++) {
                    sheet.getCellAt(2 + coneintrag, zeile).setValue(list[zeile].connections.get(coneintrag));

                }

            }

        } catch (IOException e) {
            e.printStackTrace();
        }

        return;

    }

    public void fillInConnections() {
        int temp = 0;
        for (int i = 0; i < list.length; i++) {
            for (int j = i + 1; j < list.length; j++) {
                temp = list[i].countConnections(list[j]);
                if (temp >= 3) {
                    // add j to i connections
                    list[i].connections.add(j);
                    // add i to j connections
                    list[j].connections.add(i);
                    // increase Connection numbers
                    list[i].numCon++;
                    list[j].numCon++;
                }
            }
        }
    }

    public int nOverK(int n, int k) {
        long res = 1;

        for (int i = n; i >= n - k + 1; i--) {
            res = res * i;
        }
        for (int j = 1; j <= k; j++) {
            res = res / j;
        }

        return (int) (res);

    }

}
```

Mir wird in Eclipse vor dem Ausführen kein Error angezeigt.
Die zugehörige jar Datei liegt im lib Ordner uns ist auch links bei den "referenced libraries" aufgelistet.

Sollte eigentlich funktionieren, ich hatte diese Fehlermeldung bisher auch noch nie und weiß gar nicht was sie bedeuten soll :-/


----------



## KonradN (26. Okt 2022)

Das Problem ist das jOpenDocument-1.3.jar - da hast Du eine Klasse im unnamed namespace (JDOMAbout) und das ist in Modulen nicht erlaubt.

Du kannst mal schauen, ob es ausreicht, dass Du die module-info.java löscht (oder umbenennst) - aber ich vermute, dass dies nichts bringen wird (und evtl. hast Du die auch gar nicht).

Da aus anderen Namespaces der unnamed namespace nicht importiert werden kann, kann es einfach reichen, dass man das jar File in .zip umbenennt und dann mit einem Programm öffnet um die JDOMAbout*.class Dateien zu löschen. (Sind 3 Stück!)


----------



## berndoa (26. Okt 2022)

Oh, ich bin so dumm manchmal -.-

Ich hatte ursprünglich über properties-libraries-jar einfügen die jar hinzugefügt.

Wie ich nun rausgefunden habe, hätte ich wohl ""external jar hinzufügen" benutzen müssen.
Also alte jar gelsöcht, wie erwähnt neu reingemacht, nun läuft es.


Eclipse ist manchmal echt schwer zu durchschauen wie man Sahcen importieren und exportieren kann ohne Hinterher kaputte projekte oder Verweise auf alte Ordner (statt eine Dateienkopie am neuen ort) zu haben...


----------



## Jw456 (26. Okt 2022)

berndoa hat gesagt.:


> Eclipse ist manchmal echt schwer zu durchschauen wie man Sahcen importieren und exportieren kann ohne Hinterher kaputte projekte oder Verweise auf alte Ordner (statt eine Dateienkopie am neuen ort) zu haben...


Dann gehe zu einer anderen IDE  IntelliJ


----------



## berndoa (26. Okt 2022)

Problem nur dass die Uni massiv auf Eclipse setzt :-/


----------

