JAR das Endlose Thema

Nuklearfire

Neues Mitglied
also ich hab mir zahllose Foren zu dem Thema durchgelesen und genau befolgt was da drinnen stand
aber ich komme leider nicht auf einen grünen Zweig

und zwar habe ich ein kleines Programm geschrieben das mir aus mehreren txt dateien
Gruppen und deren Addressen ausließt und in verschieden Formatierten csv dateien ausgibt

Ich arbeite mit Intellij
und Im Intellij funktioniert das programm einwandfrei auch die files werden erstellt und so aber nun möchte ich das ganze in ein jar file packen damit ich das Programm auch Standalone ausführen kann

das Programm besteht aus 3 Klassen Extract, Gruppe, Mitglieder
alle drei liegen im package extract
die .class Dateien liegen im Verzeichniss
C:\Users\NUKE\IdeaProjects\GETREADY\out\production\extract\
ebenfalls in diesem Ordner liegt das Manifest

da ich jetzt schon 98 nicht funktionierende jar Files im Mitkübel habe und keine Haare mehr am Kopf habe würde ich jetzt um Hilfe bitten

wie ich zu einem funktionierendem jar komme

meine .java dateien

Extract:
Java:
package extract;

import java.io.*;
import java.util.ArrayList;

public class Extract {

    ArrayList<Gruppe> gruppen = new ArrayList<Gruppe>();
    ArrayList<String> gruppensauber = new ArrayList<String>();
    ArrayList<Mitglieder> allemitglieder = new ArrayList<Mitglieder>();
    String[] grp;
    int zahl;


    public static void main(String[] args) throws IOException {

        Extract x = new Extract();

        x.lesen();
        x.ausgeben();
        x.alleausgeben();
        try {
            x.allegruppen();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


    public void lesen() {

        File dir = new File("H:\\Gruppen");
        grp = dir.list();
        this.zahl = grp.length;
        for (int r = 0; r < zahl; r++) {
            String akt = grp[r];
            // System.out.println(grp[r]);
            int wo = akt.length();
            String sauber = akt.substring(0, wo - 4);
            gruppensauber.add(sauber);
        }

        for (int loop_d = 0; loop_d < this.zahl; loop_d++) {


            String Verz = "H:\\Gruppen\\";
            String Datei = grp[loop_d];
            String ownFile = Verz + Datei;
            RandomAccessFile raf = null;
            String sauber = Datei.substring(0, Datei.length() - 4);
            // System.out.print("Gruppe :");
            // System.out.println(sauber=Datei.substring(0,Datei.length()-4));


            File g = new File(ownFile);
            try {
                if (g.exists()) {
                    if (g.canRead()) {
                        raf = new RandomAccessFile(g, "r");
                        ArrayList<Mitglieder> mitglieder = new ArrayList<Mitglieder>();
                        String line = null;
                        while ((line = raf.readLine()) != null) {
                            String[] Daten;
                            Daten = line.split(";");
                            String addresse = Daten[0];
                            String[] addi = addresse.split("@");
                            String name = addi[0];
                            String domäne = addi[1];

                            Mitglieder M = new Mitglieder(name, domäne, addresse);
                            mitglieder.add(M);
                            allemitglieder.add(M);
                        }

                        Gruppe a = new Gruppe(sauber, mitglieder);
                        //   System.out.println(a.mitglieder.size());
                        gruppen.add(a);
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                try {
                    if (raf != null) {
                        raf.close();
                    }
                } catch (Exception ex) {
                    ex.printStackTrace();
                } finally {

                }

            }
        }


    }

    public void ausgeben() {
        int r = gruppen.size();
        RandomAccessFile raf = null;
        String Verz2 = "H:\\Gruppen\\";

        try {

            //System.out.println(r);
            for (int n = 0; n < r; n++) {
                //   System.out.println(gruppen.get(n).gruppenname);
                String Datei = (Verz2 + gruppen.get(n).gruppenname + ".csv");
                File g = new File(Datei);
                BufferedWriter out = new BufferedWriter(new FileWriter(g));
                if (g.exists()) {
                    if (g.canWrite()) {
                        raf = new RandomAccessFile(g, "rw");
                        raf.writeBytes("Gruppe;" + gruppen.get(n).gruppenname + ";Mitglieder;" + gruppen.get(n).mitglieder.size() + ";\r\n");
                        raf.writeBytes("Nummer;Name;Domäne;E-mail Addresse;\r\n");
                        for (int h = 0; h < gruppen.get(n).mitglieder.size(); h++) {
                            String ausgabe = (h + ";" + gruppen.get(n).mitglieder.get(h).name + ";" + gruppen.get(n).mitglieder.get(h).domäne + ";" + gruppen.get(n).mitglieder.get(h).addresse + ";\r\n");
                            raf.writeBytes(ausgabe);
                        }
                    }
                }
                //   System.out.println(gruppen.get(n).mitglieder.size() + "Mitglieder");
                for (int m = 0; m < gruppen.get(n).mitglieder.size(); m++) {
                    //   System.out.println(gruppen.get(n).mitglieder.get(m).toString());
                }
            }
        } catch (Exception ex) {
                   ex.printStackTrace();
        } finally {
            try {
                raf.close();
            } catch (Exception ex) {
                    ex.printStackTrace();
            } finally {

            }

        }


    }

    public void alleausgeben() {


        //  System.out.println("*************************************************************************");
        int wiemitglieder = allemitglieder.size();
        int wiegruppen = gruppen.size();
        for (int loop_a = 0; loop_a < wiemitglieder; loop_a++) {
            String aktuellername = allemitglieder.get(loop_a).getAddresse();
            ArrayList<String> ausgabe = new ArrayList<String>();
            String Datei = aktuellername + ".csv";
            ausgabe.add(aktuellername + ";ist mitglied von;\r\n");

            for (int loop_b = 0; loop_b < wiegruppen; loop_b++) {
                int mitgliederanzahl = gruppen.get(loop_b).mitglieder.size();
                for (int loop_c = 0; loop_c < mitgliederanzahl; loop_c++) {
                    if (aktuellername.equals(gruppen.get(loop_b).mitglieder.get(loop_c).getAddresse())) {
                        ausgabe.add(gruppen.get(loop_b).gruppenname + ";\r\n");
                    }
                }
            }
            txtausgabe(Datei, ausgabe);
        }

    }

    public void txtausgabe(String Datei, ArrayList<String> TEXT) {

        int zeilen = TEXT.size();
        RandomAccessFile raf = null;
        //String Datei2 = Datei;
        String Verz = "H:\\Gruppen\\";
        File g = new File(Verz + Datei + ".csv");
        try {
            if (!g.exists()/* == false*/) {
                BufferedWriter out = new BufferedWriter(new FileWriter(g));
            }
            if (g.exists()) {
                if (g.canWrite()) {
                    raf = new RandomAccessFile(g, "rw");
                    for (int loop_a = 0; loop_a < zeilen; loop_a++) {
                        raf.writeBytes(TEXT.get(loop_a));
                    }

                }
            }


        } catch (Exception ex) {
               ex.printStackTrace();
        } finally {
            try {
                raf.close();
            } catch (Exception ex) {
                      ex.printStackTrace();
            } finally {

            }

        }


    }

    public void allegruppen() throws IOException {
        ArrayList<String> ausgabe = new ArrayList<String>();
        String Datei = "H:\\Gruppen\\Mitglieder.csv";
        String ausgabeDatei= "Mitglieder";
        File g = new File(Datei);
        BufferedWriter out = new BufferedWriter(new FileWriter(g));

        int wiegruppen = gruppen.size();

        ausgabe.add(wiegruppen + "; Gruppen gefunden;\r\n");
        System.out.println(wiegruppen + " Gruppen gefunden");

        for(int loop_a = 0 ; loop_a < wiegruppen ; loop_a ++ ){

            String gruppenname = (gruppen.get(loop_a).gruppenname);
            int mitgliederanzahl = (gruppen.get(loop_a).mitglieder.size());

            ausgabe.add("Gruppe;" + gruppenname + ";hat;" + mitgliederanzahl + ";Mitglieder;\r\n");
            System.out.println("Gruppe: " + gruppenname + " hat " + mitgliederanzahl + " Mitglieder !");

            for(int loop_b = 0 ; loop_b < mitgliederanzahl ; loop_b ++){

                String mitglied = gruppen.get(loop_a).mitglieder.get(loop_b).addresse;

                ausgabe.add((loop_b+1) + ";" + mitglied + ";\r\n");
                System.out.println((loop_b+1) + " " + mitglied);
            }


        }
        txtausgabe(ausgabeDatei,ausgabe);




    }


}

Gruppe:
Java:
package extract;
import java.util.ArrayList;

public class Gruppe {

    String gruppenname;
    ArrayList<Mitglieder>mitglieder;
    int anzahl;
    String ausgabe;

    public String getGruppenname() {
        return gruppenname;
    }

    public ArrayList<Mitglieder> getMitglieder() {
        return mitglieder;
    }

    public int getAnzahl() {
        return anzahl;
    }

    public String getAusgabe() {
        return ausgabe;
    }

    public Gruppe (){

    }

    public Gruppe (String Gruppenname, ArrayList<Mitglieder> Mitglieder){
        this.gruppenname= Gruppenname;
        this.mitglieder = Mitglieder;
        this.anzahl = mitglieder.size();
    }

    @Override
    public String toString(){

        this.ausgabe="Gruppe "+ this.gruppenname + " hat folgende Mitglieder: \n\n";

        for(int r = 0 ; r < this.anzahl ; r++ ){
            Mitglieder x = mitglieder.get(r);
            this.ausgabe +=  x.toString();
        }




        return String.format("");
    }
}

Mitglieder

Java:
package extract;
public class Mitglieder {

    String name;
    String domäne;
    String addresse;

    public String getDomäne() {
        return domäne;
    }

    public String getAddresse() {
        return addresse;
    }

    public String getName() {

        return name;
    }

    public Mitglieder(String Name,String Domäne, String Addresse){
        this.name = Name;
        this.domäne = Domäne;
        this.addresse = Addresse;
    }
    @Override
    public String toString() {
        return String.format("Name: %s \nDomäne: %s \nAddresse: %s\n\n",name,domäne,addresse);
    }
}

Manifest

Java:
1 Manifest-Version: 1.0
2 Main-Class: extract.Extract
3

und mit jar -cvfm test.jar Manifest.txt Extract.class Gruppe.class Mitglieder.class
hab ich versucht das ganze zur jar zu machen aber ohne Erfolg

entweder schreibt er er findet main-class nicht oder erfindet das main-class attribut

bitte helft mir sitze schon seit 12 Stunden nur daran das in jar zu wandeln
 

faetzminator

Gesperrter Benutzer
Du hast die Packages nicht beachtet. Die Dateien müssen im generierten Jar demzufolge im Ordner "extract" liegen - tun sie das auch? (überprüfbar mit Winzip o.ä.)
 

Nuklearfire

Neues Mitglied
ja hatte ich bin schon auf das problem drauf gekommen

Ich musste einiges herumprobieren mit dem manifest und so und jedes mal wenn
ich probiert habe hat mir der editor die leerzeile am schluß rausgelöscht ^^

naja auf sowas muss man erstmal drauf kommen

aber danke für die Hilfe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Endlose Ladezeit im Browser Java Basics - Anfänger-Themen 3
Voreck Endlose for schleife Java Basics - Anfänger-Themen 5
J OOP Endlose Erstellung eines Objekts Java Basics - Anfänger-Themen 13
S Prüfungsvorbereitung Januar ( Thema Ausdrücke ) Java Basics - Anfänger-Themen 14
Kotelettklopfer Java und das leidige Thema "wording" Java Basics - Anfänger-Themen 61
N Thema Vererbung Java Basics - Anfänger-Themen 31
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
V Hilfe zum Thema einlesen eines Datums Java Basics - Anfänger-Themen 5
F Concurrent Thema Java Basics - Anfänger-Themen 6
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
E Erste Schritte Vorschläge für mich zum Thema Punkt vor Strich ? Java Basics - Anfänger-Themen 7
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
J Verständnisfragen zu dem Thema Objekten Java Basics - Anfänger-Themen 7
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
A Hilfestellung zum Thema Persistenz Java Basics - Anfänger-Themen 12
J Frage zum Thema ... alles mögliche! Java Basics - Anfänger-Themen 6
P Noch zum Thema Arrays Java Basics - Anfänger-Themen 13
T Bin Anfänger ... das Thema auch ? Java Basics - Anfänger-Themen 10
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
Dit_ Frage zum Thema Speicherreservierung Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
I Verständnisfrage zum Thema APIs Java Basics - Anfänger-Themen 6
G Dieses leidige ID Thema Java Basics - Anfänger-Themen 9
N Das alte Thema "File Encoding" Java Basics - Anfänger-Themen 2
D Frage zum heiss geliebten Thema MVC Java Basics - Anfänger-Themen 24
D Abschlussklasse 13 Projektarbeit, thema? Java Basics - Anfänger-Themen 15
J Fragen zum Thema Arrays Java Basics - Anfänger-Themen 5
P Applet not inited - leidiges Thema Java Basics - Anfänger-Themen 6
Z leidiges Thema Datumsformatierung Java Basics - Anfänger-Themen 3
G Leidiges Thema Classpath Java Basics - Anfänger-Themen 5
G Syntax der if-Anweisung (Thema getrennt!) Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben