pdf-Anzeige

Herr Kaiser

Bekanntes Mitglied
Hallo Forum,

dieser Code:

Java:
private void pdfAnzeige(String datei) {
        if (Desktop.isDesktopSupported()) {
            System.out.println("Desktop-Klasse wird unterstützt");
            Desktop desk = Desktop.getDesktop();
            System.out.println("Eine Datei kann geöffnet werden: "
                    + desk.isSupported(Desktop.Action.OPEN));
        }

        try {
            File pdfFile = new File(datei);
            System.out.println("Die Datei " + pdfFile.getPath() + " existiert: " + pdfFile.exists());
            if (pdfFile.exists()) {
                if (Desktop.isDesktopSupported()) {
                    Desktop.getDesktop().open(pdfFile);
                } else {
                    System.out.println("Awt Desktop wird nicht unterstützt!");
                }
            } else {
                System.out.println("Datei nicht gefunden!");
            }
            System.out.println("Erledigt!");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
}

öffnet leider die pdf-Datei nicht, sondern gibt Folgendes aus:

Desktop-Klasse wird unterstützt
Eine Datei kann geöffnet werden: true
Die Datei /home/NetBeansProjects/MeinProjekt/Bericht.pdf existiert: true


java.io.IOException: Failed to show URI:file:/home/NetBeansProjects/MeinProjekt/Bericht.pdf
at sun.awt.X11.XDesktopPeer.launch(XDesktopPeer.java:114)
at sun.awt.X11.XDesktopPeer.open(XDesktopPeer.java:77)
at java.awt.Desktop.open(Desktop.java:272)


Weiß jemand, woran das liegen könnte?
(OS: Ubuntu 12.04, pdf-Viewer ist installiert, NetBeans 7.1.2, JDK 1.7)
 

nrg

Top Contributor
Würde mal drauf tippen, dass die Datei nicht exisitert ;).

gib dir mal mit new File(".").getAbsolutePath() den aktuellen Pfad aus. Vermutlich ist die relative Pfadangabe zu der PDF einfach falsch.
 
G

Gast2

Gast
Funktioniert bei mir problemlos.
Ubuntu 12.04 Java7

Fehlt bei dir im Dateinamen nicht noch der username? /home/xxxxx/NetBeansProjects ?

EDIT:
nrg hat gesagt.:
Vermutlich ist die relative Pfadangabe zu der PDF einfach falsch
Das ist nen absoluter Pfad ;)
 

Herr Kaiser

Bekanntes Mitglied
Ui, das geht ja schnell! Vielen Dank! :)

Die Datei existiert am angegebenen Ort und kann auch per Klick im Dateimanager erfogreich geöffnet werden. Das mit dem fehlenden Usernamen hast du gut bemerkt. Den habe ich aus Anonymisierungsgründen im obigen Posting nur herausgeschnitten. Der Pfad ist im Code vollständig und korrekt ???:L
 
Zuletzt bearbeitet:

ssoul26

Bekanntes Mitglied
Also ich kann dir sagen, wie der Fehler laut Oracle Docs zu interpretieren ist.

- IOException - if the specified file has no associated application or the associated application fails to be launched.

Man kann davon ausgehen, dass die Datei existiert. Interessant wäre hier, mit welcher Software generell PDF normalerweise geöffnet werden und ob diese richtig läuft.
 

jgh

Top Contributor
wenn die Datei am richtigen Ort liegt und auch valide ist, kann es imho nur daran liegen, dass du -kA wie das unter ubuntu ist- keine Application gewählt hast, mit der eine pdf-Datei zu öffnen ist.

Bei mir (win7) läuft der Code einwandfrei, sogar .tex-Dateien öffnet er mit TexNicCenter, pdf´s mit Adobe, doc´s mit OO usw
 

Herr Kaiser

Bekanntes Mitglied
Danke ssoul26 und jgh, das geht ja in die ähnliche Richtung, vielleicht komme ich da weiter. Eine Standardanwendung zum Öffnen der PDFs ist eingerichtet und öffnet sich, wie gesagt, auch brav, wenn ich die Datei anklicke. Aber vielleicht ist da irgendetwas nicht kompatibel. Ich werde mal verschiedene Anwendungen ausprobieren. Den vorinstallierten Viewer (Okular) habe ich schon erfolglos ersetzt durch xpdf. Aber es gibt ja noch andere Alternativen. Ich werde weiter testen ...
Schonmal gut zu wissen, dass der Fehler nicht prinzipiell in obigem Codeabschnitt zu suchen ist.
 

Herr Kaiser

Bekanntes Mitglied
So, ich habe das Problem gelöst! Ihr habt mich auf genau die richtige Fährte gebracht! :)
In den Kubuntu-Dateizuordnungen waren zwei Viewer zum Öffnen von PDFs gelistet. Einen habe ich aus der Liste entfernt, und schon klappt es wie am Schnürchen!
Herzlichen Dank noch einmal für eure Hilfestellung.

Allerdings habe ich ein weiteres Problem mit der AWT-Desktop-API: ich möchte den Standard-Mail-Client öffnen lassen, um von dort aus eine Mail zu verschicken. Der folgende Code führt leider ebenfalls zur IOException (Failed to show URI). Daher dachte ich, es läge das gleiche Problem vor, allerdings ist hier auf Systemebene die Zuordnung eindeutig: es ist nur ein einziges Mailprogramm installiert (KMail) und in der Systemsteuerung ist "KMail als bevorzugtes E-Mail-Programm festlegen" aktiviert. KMail selbst läuft fehlerfrei, wenn man es direkt aufruft. Hättet Ihr noch eine Idee, wie man den Fehler beheben könnte oder vielleicht auf ganz andere Art und Weise den Mail-Client dazu bringt, sich zu öffnen? Das wäre richtig prima! Danke schonmal, auch für die bisherige Hilfe!

Java:
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
String mailTo = "empfaenger@mail.de";
URI uriMailTo = null;
try {
    if (mailTo.length() > 0) {
        uriMailTo = new URI("mailto", mailTo, null);
        desktop.mail(uriMailTo);
    } else {
        desktop.mail();
    }
}
catch(IOException ioe) {
    ioe.printStackTrace();
}
catch(URISyntaxException use) {
    use.printStackTrace();
}
 
Zuletzt bearbeitet:
G

Gast2

Gast
Der Code funktioniert bei mir ohne Probleme. Als Client ist bei mir Thunderbird installiert.

EDIT:
Wenn du nen ganz anderen weg suchst kannst du den Mailclient per Kommandozeilenaufruf starten, der Weg über Desktop ist allerdings wesentlich schöner.
 

Herr Kaiser

Bekanntes Mitglied
Der Code funktioniert bei mir ohne Probleme. Als Client ist bei mir Thunderbird installiert.

EDIT:
Wenn du nen ganz anderen weg suchst kannst du den Mailclient per Kommandozeilenaufruf starten, der Weg über Desktop ist allerdings wesentlich schöner.


Danke, Eike, das ist schonmal ne gute Rückmeldung. Werde mal ein anderes Mailprogramm testen, und ggf. den Kommandozeilenweg austüfteln. Ich werde berichten ...

Dankeschön :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
Elyt Würfel mit bildlicher Anzeige Java Basics - Anfänger-Themen 2
S JavaFX-Arduino Kommunikation mit LCD-Anzeige Java Basics - Anfänger-Themen 0
A Anzeige Fehler auf anderem Gerät Java Basics - Anfänger-Themen 1
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
Hijo2006 Anzeige eines Bildes in JAR Java Basics - Anfänger-Themen 12
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
TheSorm Anzeige fehler eines Buttons Java Basics - Anfänger-Themen 3
C Erste Schritte Berechnen einer Form mit Live anzeige.... Java Basics - Anfänger-Themen 4
J Anzeige erneuern, wie geht das? Java Basics - Anfänger-Themen 6
S ListModel - Anzeige im JList Java Basics - Anfänger-Themen 4
FetterOtter JTable: ToolTipText-Anzeige abhängig von Zellengröße und Textlänge Java Basics - Anfänger-Themen 2
S Probleme bei der Gui Anzeige Java Basics - Anfänger-Themen 11
S JPanel anzeige Java Basics - Anfänger-Themen 2
K Erste Schritte prob anzeige Java Basics - Anfänger-Themen 4
P Labyrinth, Backtracking, verzögerte Anzeige Java Basics - Anfänger-Themen 15
G JTextField() Anzeige - if-Anweisungen Java Basics - Anfänger-Themen 2
1 Combobox anzeige Java Basics - Anfänger-Themen 7
F grafische Anzeige von Werten Java Basics - Anfänger-Themen 2
D DB Anzeige der Treffer Java Basics - Anfänger-Themen 12
Weiti Anzeige von komponenten erst bei Mouse-Over Java Basics - Anfänger-Themen 3
S Zeitpunkt für die Anzeige von setBackground Java Basics - Anfänger-Themen 2
H Klassen zur Anzeige ines Bildes und zum Zeichnen innerhalb diese Bildes Java Basics - Anfänger-Themen 2
B double Rundungsfehler od. Anzeige-Fehler? Java Basics - Anfänger-Themen 4
D GUI Anzeige fehlt Java Basics - Anfänger-Themen 4
C Probleme mit Exportieren einer jar-datei /keine Anzeige mehr Java Basics - Anfänger-Themen 5
hdi Konsole basteln -> wie die Anzeige des Inhalts realiseren Java Basics - Anfänger-Themen 3
B Arbeitsspeicher-Verbrauch bei Anzeige eines 10MP-Bildes Java Basics - Anfänger-Themen 11
G Problem mit Anzeige der Tabelle Java Basics - Anfänger-Themen 3
G Ebenen Verwaltung und Anzeige Problem Java Basics - Anfänger-Themen 6
G JFileChooser - Anzeige beschleunigen Java Basics - Anfänger-Themen 2
O Anzeige von Zeichen in einer JList Java Basics - Anfänger-Themen 5
G 9-Segment-Anzeige Java Basics - Anfänger-Themen 7
B Java - Anzeige beim Refresh weiss Java Basics - Anfänger-Themen 11
T Keine Anzeige in JList Java Basics - Anfänger-Themen 18
B unvollständige Anzeige von JComboBox Werten Java Basics - Anfänger-Themen 5
C Taschenrechner -> Anzeige/Variablen Problem Java Basics - Anfänger-Themen 9
S JTextArea Problem mit Anzeige Java Basics - Anfänger-Themen 2
A Datei einlesen und Inhalt in verschidenen JList anzeige? Java Basics - Anfänger-Themen 3
G Array anzeige nur letzter wert Java Basics - Anfänger-Themen 2
M Keine Anzeige, wenn ich die Classe umbenenne Java Basics - Anfänger-Themen 13
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
G Problem mit JPanel, bekomme keine Anzeige! Java Basics - Anfänger-Themen 4
I Classpath Anzeige Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben