Problem: pdf-Datei anzeigen Java 1.6 / Kubuntu

  • Themenstarter Themenstarter Sebastian G
  • Beginndatum Beginndatum
S

Sebastian G

Hallo,

ich habe folgendes Progamm geschrieben um pdf-Dateien anzeigen zu lassen:

Code:
import java.awt.Desktop;
import java.awt.HeadlessException;
import java.io.File;
import java.io.IOException;


public class pdf {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws UnsupportedOperationException 
	 * @throws HeadlessException 
	 */
	public static void main(String[] args) throws HeadlessException, UnsupportedOperationException, IOException  {
		
		  
		Desktop.getDesktop().open(new File("/home/benutzername/Beispiel.pdf"));
	
	}

}


Das Programm hat mit Java 1.5 funktioniert. Nur seit ich Java 1.6 habe bekomme ich folgende Fehlermeldung:


Code:
Exception in thread "main" java.io.IOException: Failed to show URI:file:/home/benutzername/Beispiel.pdf
	at sun.awt.X11.XDesktopPeer.launch(XDesktopPeer.java:75)
	at sun.awt.X11.XDesktopPeer.open(XDesktopPeer.java:43)
	at java.awt.Desktop.open(Desktop.java:254)
	at pdf.main(pdf.java:18)

Wie kriege ich das Progamm mit Java 1.6 zum Laufen?


Vielen Dank im Voraus!


Sebastian
 
Hi-Ho

1.) Klassennamen fangen immer mit nem großen Buchstaben an!
2.) Das Teil kann unter 1.5 nicht laufen, da es die Klasse "Desktop" erst seit Java 1.6 gibt.
 
Die liegt da aber noch in einem anderen Package. Wenn er ohne Veränderungen jdic weiter verwendet hätte, dann müsste zumindest das import-Package identisch sein ... naja eine Antwort des Threadstellers sollte hier Klarheit verschaffen.
 
Hallo,

erstmal vielen Dank für eure Antworten.

Um das mit der Java-Version klarzustellen:

Ich benutze Eclipse 3.2 und habe dort die Auswahl beim Java-Projekt erstellen, ob ich

1. "JRE System Libery [java 1.5.0-gcj-4.3.1.5.0.0]"

oder

2. "JRE System Libery [java6-openjdk]"

benutzen will.

Nun habe ich einmal ein Java-Projekt mit 1. und einmal mit 2. erstellt. Ich habe jeweils das gepostete Progamm geschrieben (bzw. copy and paste) und mit 1. wird die pdf geöffnet, mit 2. erhalte ich die oben gepostet Fehlermeldung.

Allerdings läuft unter 2. das folgende Programm:

Code:
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;


public class PDF {

	/**
	 * @param args
	 * @throws URISyntaxException 
	 * @throws IOException 
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException, URISyntaxException  {
		
		Desktop.getDesktop().browse(new URI("http:www.google.de"));


	}

}

Daraus folgere ich, dass auch unter 2. die Desktop-Klasse vorhanden ist und verstehe nicht warum die pdf nicht geöffnet wird.


@ Thomas Darimont

Danke für den Link bezüglich der Dateizuordnung. Habe es überprüft und festgestellt, dass bei mir alles stimmt.
 
Mooooooooooment, wenn du eine JRE angibst, heißt das noch lange nicht, dass auch das Compiler-Level auf diesem Niveau angepasst ist! Schau mal, was bei deinem Compiler-Level steht.

Generell: Unter 1.5 kann dieser Code nicht funktionieren!
 
Hallo,

auch auf dem Compiler-Level war Java 5.0 ausgewählt. Habe es auf Java 6.0 geändert. Daraus folgte, dass weder eine pdf geöffnet werden konnte, noch eine Website angezeigt werden konnte.

Ich habe dann, da ich keine Lust mehr hatte, Eclipse 3.2 deinstalliert und mir von der Eclipse-Website das neue Eclipse (Ganymede) geholt. Nachdem ich es installiet hatte (Anleitung siehe: http://ph.ubuntuforums.com/showthread.php?t=875111) funktionierte alles bestens. Ich kann nun pdf's sowie Websites über die Desktop-Klasse öffnen.



Vielen Dank für Eure Bemühungen.

Sebastian
 
Zurück