Ich habe Java-Projekt, in dem eine Schaltfläche eine PDF-Datei öffnet als das projekt in ein lauffähiges jar exportiert wurde, öffnet sich die datei nicht !!
Das ist mein Button Listener
public void about (Event event){
if (Desktop.isDesktopSupported()) {
try {
File myFile = new File("src/application/Documenation.pdf");
Desktop.getDesktop().open(myFile);
} catch (IOException ex) {
// no application registered for PDFs
}
}
}
Antworten:
0 für die Antwort № 1Verweisen Sie niemals auf Inhalte innerhalb der src
Wenn Sie ein Projekt erstellen, wird das Verzeichnis src
Verzeichnis wird nicht existieren.
Auf Inhalte, die in Ihrem Anwendungskontext enthalten sind (insbesondere auf Inhalte, die in einer Jar - Datei enthalten sind), kann normalerweise nicht als "a" zugegriffen werden File
(wie Sie es vom Dateisystem aus tun), werden sie zu einem Eintrag in Ihrer Anwendungs-Jar-Datei.
In diesem Fall müssen Sie die Datei extrahieren, bevor Sie sie öffnen können.
Was Sie tun können, ist, sich zu bedienen Class#getResourceAsStream
und kopieren Sie das Ergebnis InputStream
auf die Festplatte
Beispielsweise...
try (InputStream is = getClass().getResourceAsStream("/application/Documenation.pdf")) {
File file = File.createTempFile("Documentation", ".pdf");
file.deleteOnExit();
try (OutputStream os = new FileOutputStream(file)) {
byte[] buffer = new byte[1024];
int bytesRead = -1;
while ((bytesRead = is.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
}
Desktop.getDesktop().open(file);
} catch (IOException exp) {
exp.printStackTrace();
}