IDE zeigt keine Fehler an, Programm wird jedoch nicht ausgeführt.

snipesss

Mitglied
Erste Klasse:

Java:
// import static java.lang.System.out;

public class Mitarbeiter {

private String name;
private String funktion;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getFunktion() {
    return funktion;
}
public void setFunktion(String funktion) {
    this.funktion = funktion;
}

public void zahleGehalt(double betrag) {
    out.printf("Zahlen Sie an %s ", name);
    out.printf("(%s) ***", funktion);
    out.printf("%, .2f Euro\n", betrag);
}

}

Zweite Klasse:

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

public class Gehaltsabrechnung4 {
    public static void main(String args[])
                                throws IOException {
    Scanner diskScanner =
            new Scanner(new File("EmployeeInfo.txt"));
  
    for(int empNum = 1; empNum <= 3; empNum++){
        bezahleMitarbeiter(diskScanner);
    }
  
    diskScanner.close();

}

static void bezahleMitarbeiter(Scanner aScanner) {
    Mitarbeiter einMa = new Mitarbeiter();
  
    einMa.setName(aScanner.nextLine());
    einMa.setFunktion(aScanner.nextLine());
    einMa.zahleGehalt(aScanner.nextDouble());
    aScanner.nextLine();
}
}

Fehlermeldung:

Exception in thread "main" java.io.FileNotFoundException: EmployeeInfo.txt (Das    
System kann die angegebene Datei nicht finden)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at Gehaltsabrechnung4.main(Gehaltsabrechnung4.java:9)

Wo soll ich die Datei 'EmployeeInfo.txt' speichern? Unter welches Verzeichnis?
 
Direkt im src-Folder. Du musst aber, wenn du wie hier den relativen Pfad angibst noch das vorhängen
Java:
new File(DeineKlasse.class.getResource("Employee.txt").getFile())


Meinst du so:

Scanner diskScanner =
new Scanner(new File(Gehaltsabrechnung4.class.getResource("Employee.txt").getFile()));
?

Wenn ja, dann erscheint diese Fehlermeldung:

Exception in thread "main" java.lang.NullPointerException
at Gehaltsabrechnung4.main(Gehaltsabrechnung4.java:10)
 
Ich würde mir erst mal klarmachen was Employee.txt überhaupt ist ? Ist das eine Datei die du mit deiner Anwendung (z.B. im Jar-File) auslieferst ? Oder ist es eine Datei die dein Anwender editiert und die irgendwo im Fileverzeichnis stehen soll ? Dann wäre diese getResource-Geschichte nicht so das richtige ...
 
@JStein52 Richtig, es kommt auf den Zweck an. Ich habe auch schon oben geschrieben, dass ich davon ausging, der Te wollte sie im Src haben.

Und die Npe kommt, weil die Datei doch EmployeeInfo heißt, oder nicht?
 
Richtig, es kommt auf den Zweck an
Ja. Wenn es sich bei der Datei um eine "Ressourcedatei" handelt die einmal mit der Anwendung ausgeliefert wird und gut ist dann gehört sie ins jar-File und alle deine Ausführungen sind richtig.
Wenn es sich um eine Arbeitsdatei handelt die verändert wird dann gehört sie irgendwo ins Filesystem und dieses Irgendwo sollte man am besten noch knfigurierbar machen. In dem Fall wäre der ursprüngliche Code des TE richtig, nur der Pfad müsste halt entsprechend aufbereitet werden.

Edit: ah ok. dann Ressource !!
 
Ja. Wenn es sich bei der Datei um eine "Ressourcedatei" handelt die einmal mit der Anwendung ausgeliefert wird und gut ist dann gehört sie ins jar-File und alle deine Ausführungen sind richtig.
Wenn es sich um eine Arbeitsdatei handelt die verändert wird dann gehört sie irgendwo ins Filesystem und dieses Irgendwo sollte man am besten noch knfigurierbar machen. In dem Fall wäre der ursprüngliche Code des TE richtig, nur der Pfad müsste halt entsprechend aufbereitet werden.

Edit: ah ok. dann Ressource !!
Wo befindet sich diese .jar Datei?
 
Die erstellst du wenn du mit deinem Projekt fertig bist und das ist dasjenige was an deine Anwender ausgeliefert wird. Dazu gibt es Funktionen in Eclipse um diese Jar-Datei zu erstellen.
 

Zurück
Oben