# Runnable Jar in Eclipse - findet xslt stylesheet nicht



## Vokabulator (18. Nov 2013)

Hallo!

Ich würde aus meinem Programm gerne eine runnable jar machen. Mein xslt-stylesheet binde ich folgendermaßen ein:

```
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?


----------



## Vokabulator (19. Nov 2013)

Nachtrag: Auch das nachträgliche Einbinden in die jar funktioniert nicht. Das Programm sucht das stylesheet wohl immer im workspace.


----------



## anti-held (19. Nov 2013)

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:

```
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.


----------



## Vokabulator (21. Nov 2013)

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.


----------



## anti-held (21. Nov 2013)

Ich habe im Anhang ein Bild von meinem Projekt in Eclipse.

Die ResourcesTest sieht folgendermaßen aus:


```
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.


----------



## Vokabulator (22. Nov 2013)

okay, ich hatte in Eclipse nicht definiert, dass der resurce-Ordner ein Source-Ordner werden soll. Es klappt jetzt! DANKE!!


----------

