Hallo liebes Forum,
ich habe ein Problem mit meinem Projekt wenn ich es in ein runable jar-Datei exportiere.
Wenn ich die Datei über die cmd mit der java.exe ausführe dann wird bei mir eine NullPointerException geschmissen.
Mir ist allerdings nicht ganz klar warum.
Ich vermute es liegt am Import der xlsx Datei die ich über die Apache POI einlese.
Könnt ihr mir bitte sagen warum ich hier eine Exception bekomme und mir auch die Lösung des Problems schreiben?!
Da der Quellcode doch etwas umfangreicher ist, stelle ich euch meine Repositoy auf GitHub zu Verfügung:
https://github.com/reutila/project-auslosung.git
Quellcode des vermuteten Fehlers in der Methode readSchuelersFromExcelFile meiner Schueler-Klasse:
Danke für eure Hilfe
ich habe ein Problem mit meinem Projekt wenn ich es in ein runable jar-Datei exportiere.
Wenn ich die Datei über die cmd mit der java.exe ausführe dann wird bei mir eine NullPointerException geschmissen.
Mir ist allerdings nicht ganz klar warum.
Ich vermute es liegt am Import der xlsx Datei die ich über die Apache POI einlese.
Könnt ihr mir bitte sagen warum ich hier eine Exception bekomme und mir auch die Lösung des Problems schreiben?!
Da der Quellcode doch etwas umfangreicher ist, stelle ich euch meine Repositoy auf GitHub zu Verfügung:
https://github.com/reutila/project-auslosung.git
Quellcode des vermuteten Fehlers in der Methode readSchuelersFromExcelFile meiner Schueler-Klasse:
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.text.*;
import java.util.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
public class Schueler2 {
private String name;
private String vorname;
private String klasse;
private Date geburtstag;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
public String getKlasse() {
return klasse;
}
public void setKlasse(String klasse) {
this.klasse = klasse;
}
public Date getGeburtstag() {
return geburtstag;
}
public void setGeburtstag(Date geburtstag) {
this.geburtstag = geburtstag;
}
public Schueler2(String name, String vorname, String klasse, Date geburtstag) {
super();
this.name = name;
this.vorname = vorname;
this.klasse = klasse;
this.geburtstag = geburtstag;
}
public Schueler2() {
super();
}
public String toString() {
return "Schueler [klasse= " + klasse + ", name= " + name + ", vorname= " + vorname + ", geb= "
+ geburtstag.getDate() + "." + geburtstag.getMonth() + "." + (1900 + geburtstag.getYear()) + "]";
}
private Object getCellValue(Cell cell) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
return cell.getStringCellValue();
case Cell.CELL_TYPE_BOOLEAN:
return cell.getBooleanCellValue();
case Cell.CELL_TYPE_NUMERIC:
return cell.getNumericCellValue();
}
return null;
}
[B] public List<Schueler2> readSchuelersFromExcelFile(String excelFilePath) throws IOException {
List<Schueler2> listSchueler2 = new ArrayList<>();
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workSchueler = new XSSFWorkbook(inputStream);
Sheet firstSheet = workSchueler.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
Schueler2 aSchueler = new Schueler2();
while (cellIterator.hasNext()) {
Cell nextCell = cellIterator.next();
int columnIndex = nextCell.getColumnIndex();
switch (columnIndex) {
case 0:
aSchueler.setKlasse((String) getCellValue(nextCell));
case 1:
aSchueler.setName((String) getCellValue(nextCell));
break;
case 2:
aSchueler.setVorname((String) getCellValue(nextCell));
break;
case 3:
String geb = (String) getCellValue(nextCell);
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date date1 = sdf.parse(geb);
aSchueler.setGeburtstag(date1);
} catch (ParseException ex2) {
ex2.printStackTrace();
}
break;
}
}
listSchueler2.add(aSchueler);
}
workSchueler.close();
inputStream.close();
return listSchueler2;
}[/B]
}
Danke für eure Hilfe