Runnable Jar in Eclipse - findet xslt stylesheet nicht

Vokabulator

Mitglied
Hallo!

Ich würde aus meinem Programm gerne eine runnable jar machen. Mein xslt-stylesheet binde ich folgendermaßen ein:
Code:
File xsl = new File("stylesheet.xsl");

Leider wird das stylesheet nie in die jar mit exportiert. Egal, ob ich das stylesheet, wie jetzt, auf derselben Ebene habe, wie den src-Folder oder ob ich es im Package-Ordner, bei den .java-Dateien habe.

Was mache ich falsch?
 
Erstelle dir in Eclipse im Projekt einen neuen Source-Folder.
Diesen würde ich resources nennen.
Da legst du deine xsl files rein.
Da es in einem Source-Folder liegt, wird es automatisch beim exportieren in die Jar-Datei mit kopiert.

Falls es dann immer noch nicht funktioniert verwende folgenden Code um einen Stream zum File
zu öffnen:
Java:
		Thread.currentThread().getContextClassLoader().getResource("stylesheet.xls").openStream();
falls du in deinem Source-Folder noch pakete einfügst musst du diese auch im String vermerken:
z.B. [c]"styles/stylesheet.xls"[/c] falls es das Paket styles im source-folder resources geben sollte.
 
Zuletzt bearbeitet:
Also die stylesheets werden nur exportiert, wenn sie im selben Ordner sind, wie die .java-Dateien. Dann sucht das Programm die Dateien aber immer noch im Workspace.

Und wenn ich die Datei so einlese, wie von dir vorgeschlagen, dann kommt eine NullPointerException.
 
Ich habe im Anhang ein Bild von meinem Projekt in Eclipse.

Die ResourcesTest sieht folgendermaßen aus:

Java:
package main;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ResourcesTest {

	public static void main(String[] args) {
		try {
			String filename = "resources/stylesheet.xsl";
			InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
			if (is == null) {
				throw new FileNotFoundException(filename);
			}
			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
			String line = "";
			while ((line = reader.readLine()) != null) {
				System.out.println(line);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

}

und in dem xsl File steht das, was im Anfang im Output ausgegeben wird.

Die Jar-Datei exportierst du als ausfürbares jar-File.
Dann sollte es auch funktionieren.
 

Anhänge

  • Project.JPG
    Project.JPG
    15 KB · Aufrufe: 23
  • Output.JPG
    Output.JPG
    47,1 KB · Aufrufe: 37

Zurück
Oben