persistence.xml in ausführbare jar einbinden

GFaktor

Mitglied
Hallo allerseits,
ich habe in eclipse eine kleine Anwendung mit einer HSQLDB erstellt. Für die DB-Anbindung wird eine persistence.xml unter dem Verzeichnis
META-INF genutzt. Soweit ist alles gut und funktioniert beim ausführen in eclipse wie gewünscht. Wenn das ganze aber als (ausführbare) jar-Datei exportiert wird läuft die jar auf Fehler da die Persistence.xml nicht gefunden wird. Ich denke das das Verzeichnis META-INF innerhalb der jar anders plaziert werden muss. Gibt es dafür eine passende Einstellung oder ein Vorgehen wo der Ordner META-INF innerhalb des Projektes zu plazieren ist. Vielen Dank
 
Meine Vermutung wäre, dass die persistence.xml in Deinem JAR nicht vorhanden bzw. nicht in /META-INF vorhanden ist.
 
In dem JAR ist die Datei schon mit drin. Es gibt dort auch einen Ordner META-INF mit der xml und dem Manifest. Ich denke aber dass sie in den/die Ordner muss die darauf zugreifen.
 
Hier mal die Projektstruktur in eclipse. Wie gesagt über die run läuft es auch ohne Propleme

12020

Wenn ich aber ein runable jar exportiere und das aufrufe kommt es zu Fehlern weil die pers.xml nicht gefunden wird:
12021

Scheint also für die Erzeugung der jar anders zu handhaben sein. Hab leider keinen Plan was ich im Moment falsch stehen hab.

mfg
Jürgen
 
Hier ist der code:

Code:
package controll;

import java.awt.EventQueue;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import view.MainView;

public class MainControll {
    private MainView view;
    private EntityManagerFactory ef;
    

    public MainControll() {
        view = new MainView();
        ef = Persistence.createEntityManagerFactory("AdressenPU");
    }
    
    public EntityManager getEM() {
        return ef.createEntityManager();
    }
    
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainControll mc = new MainControll();
                    mc.view.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

Habw inwischen mal einen resource ordner unter das Projekt gehangen: Struktur siehr jetzt so aus:

12029

Leider immer noch dasselbe Problem. Innerhalb von eclipse über run läufts als export nicht.
 
Naja jetzt funktioniert es wie gewünscht. Habe noch ein wenig probiert, weiss aber peinlicherweise i.M. nicht wo der Fehler lag.
Auf jeden Fall erstmal ein dickes Danke für eure Hilfe.
Werde morgen mal versuchen nachzuvollziehen woran es letztlich lag und das Ergebnis mitteilen, vielleicht hilft es einem anderen
den gleichen Bock zu vermeiden
 

Zurück
Oben