Eclipse JARs mit Eclipse

Hatschi

Aktives Mitglied
Ich habe ein kleines Programm geschrieben in welchem Daten aus TXTs ausgelesen werden. In Eclipse funktioniert alles super, wenn ich das ganze jetzt jedoch als JAR exportieren möchte, fehlt in der Datei aufeinmal der Ordner mit den TXTs. Ich vermute mal, dass ich den Ordner irgendwie dem Classpath hinzufügen muss, aber wie mache ich das?
Schon mal danke im Vorraus
 
das habe ich auch schon ausprobiert, dann landen die Dateien zwar in der JAR aber ohne Ordner! Auch findet er die Dateien nicht, weder unter "<Ordner>/<Dateiname>", noch unter "<Dateiname>".
Code:
Exception in thread "main" java.io.FileNotFoundException: matrix1.txt (Das System kann die angegebene Datei nicht finden)
...
 
Soweit ich weiß, kannst du nicht einfach so Dateien in Jar auflisten usw. Versuche die Dateien über getResource einzulesen.
 
also, ich habe jetzt mal versucht das ganze mit getRessource einzulesen...
Java:
public class SudokuIO {
	public static int[][] read(String path, String name) throws Exception {
		BufferedReader in = new BufferedReader(new InputStreamReader(SudokuIO.class.getResourceAsStream(path + name + ".txt")));
		//BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(path + name + ".txt")));
		String line;
		int[][] m = new int[9][9];
		for(int i=0; (line=in.readLine())!=null; i++) {
			if(line.equals("")) {
				i--;
				continue;
			}
			StringTokenizer st = new StringTokenizer(line);
			for(int j=0; st.hasMoreTokens(); j++) {
				int x = Integer.valueOf(st.nextToken()).intValue();
				if(x<0 || x>9) throw new RuntimeException("nur Zahlen zwischen 0 und 9!");
				m[i][j] = x;
			}
		}
		in.close();
		return m;
	}
Und jetzt sagt mir Eclipse:
Code:
Exception in thread "main" java.lang.NullPointerException
	at java.io.Reader.<init>(Unknown Source)
	at java.io.InputStreamReader.<init>(Unknown Source)
	at sudoku.SudokuIO.read(SudokuIO.java:10)
	at sudoku.Test.main(Test.java:22)
mit der auskommentierten Zeile funktioniert das...
 
dann müsste er mir ja den selben Fehler auswerfen mit der auskommentierten Zeile!?
(ich habs jetzt auch mal entfernt, geht dennoch nicht...)
 
dann müsste er mir ja den selben Fehler auswerfen mit der auskommentierten Zeile!?
(ich habs jetzt auch mal entfernt, geht dennoch nicht...)
Nein, die auskommentierte Zeile geht aufs Dateisystem und da ist der Sourcefolder natürlich Teil des Pfades (das funktioniert später im jar aber nicht mehr).
Wie sieht dein Pfad aus und wo liegt das Bild im Projekt?
 
ich habe eine Projekt "Sudoku". Darin liegen zwei source ordner. Einmal der "src" und "lib". In "lib" ist jetzt ein normaler Ordner "submissions" und in dem liegen die TXTs.
 
ja, eigentlich schon, wäre ansonsten eher peinlich...
(aber dann müsste das ja auch nicht mit der auskommentierten klappen... also natürlich wenn ich da dann wieder zum path "lib" hinzufüge)
 
(aber dann müsste das ja auch nicht mit der auskommentierten klappen... also natürlich wenn ich da dann wieder zum path "lib" hinzufüge)
Nein, das stimmt nicht ganz. Nicht jedes Dateisystem inst Case-Sensitiv. NTFS (Windows) zum Beispiel ist es nicht. Classpath Resourcen sind allerdings immer Case-Sensitv.
Nochmal die Checkliste:
-Stell sicher das die Resource in einem Source folder liegt
-Stell sicher das die Groß- Kleinschreibung passt
-Stell sicher das der Pfad passt

Dann klappt das auch...
 

Zurück
Oben