File wird in jar scheinbar nicht gefunden

iChaos

Aktives Mitglied
Hallo zusammen;

Habe ein kleines Problem. Und zwar habe ich ein GUI mit einer JMenuBar, dort hat es ein Item, welches mir dann zwei Dokumente mit Desktop.getDesktop().open(..) öffnet. Dies funktioniert in eclipse einwandfrei. Sobald ich aber ein jar-File erstelle und dasselbe mache, passiert nichts.
Ich weiss, dass es an den Pfäden liegt und ich vermute, dass ich irgendwas mit getClass.getResource() machen muss.
Jedoch hab ich bis jetzt nicht herausgefunden wie ich dass anstellen kann.
Hat jemand ne Idee?


Hier der Code der Klasse:
Java:
public class MenuItemDocEvent implements ActionListener {

	
	/**
	 * Öffnet die Projektdokumentation.
	 */
	public void actionPerformed(ActionEvent itemEvent) {
		try {
			Desktop.getDesktop().open(new File(("Media/Projektdokumentation.pdf")));
			Desktop.getDesktop().open(new File("Media/Testing_iFileDump.xlsx"));
			LogPanel.fillDoc("Opened the documentation");
			MyLogger.getInstanceFromLogger().info("Opened the documentation");
			
		} catch (IOException exc) {
			exc.printStackTrace();
			MyLogger.getInstanceFromLogger().error(exc.getMessage());
			LogPanel.fillDoc(exc.getMessage());
		}
	}
}
 
Wenn diese Datein im jar liegen, kann man sie nicht als Datei öffnen. Um sie zu mit Desktop.open(...) zu öffnen müsste man sie zunächst aus dem jar File extrahieren.
Sollen diese Dateien eventuell auch noch bearbeitet werden? ==> erst gar nicht mit ins jar packen.
 
Innerhalb der knapp 1 1/2 Wochen in denen ich hier im Forum aktiv bin, ist das mit Sicherheit der 10. Thread zu dem Thema "Bild, File, sonst was in jar öffnet nicht obwohl es in Eclipse geht".

Benutzt mal die Suchfunktion. Ich hatte das Problem auch mal. Und habe prompt Dutzende Threads MIT den dazugehörigen Lösungen gefunden...
 
Achso, wusste ich nicht. Nein die Dateien sollen lediglich geöffnet werden können. Hättest du sonst noch eine andere Idee wie ich das angehen könnte? Vorteilhaft wäre, wenn ich die Files ins Jar packen könnte.
 
Innerhalb der knapp 1 1/2 Wochen in denen ich hier im Forum aktiv bin, ist das mit Sicherheit der 10. Thread zu dem Thema "Bild, File, sonst was in jar öffnet nicht obwohl es in Eclipse geht".

Benutzt mal die Suchfunktion. Ich hatte das Problem auch mal. Und habe prompt Dutzende Threads MIT den dazugehörigen Lösungen gefunden...

Dann verweise mich doch bitte auf den Thread. Bis jetzt hatte ich keine Probleme mit Bilder und MP3-Dateien und zum Thema File finde ich keine funktionierende Lösung. Und wie Michael.. schrieb, funktioniert es mit getDesktop(),wenn die Files innerhalb des jars liegen, nicht.
 
Das legt dir die Datei ins Temp-Verzeichnis.

Java:
	public File createTempFile(String path) throws IOException
	{
		File outFile = new File(System.getenv("TEMP") + "/" + path);
		if(outFile.exists() && outFile.isDirectory())
		{
			throw new IOException(outFile.getPath() + " is a directory.");
		}
		
		InputStream inStream = ClassLoader.getSystemResourceAsStream(path);
		if(inStream==null)
		{
			throw new FileNotFoundException(path);
		}
		
		OutputStream outStream = new FileOutputStream(outFile);
		byte[] buffer = new byte[1024];
		int count = 0;
		while((count=inStream.read(buffer))!=-1)
		{
			outStream.write(buffer,0,count);
		}
		
		outStream.close();
		inStream.close();		
		
		return outFile;
	}

Aufräumen nicht vergessen :wink:
 

Zurück
Oben