/ / ouverture d'un fichier sur un clic de bouton - java, fichier

ouvrir un fichier sur un clic de bouton - java, fichier

J'ai un projet java dans lequel un bouton ouvre un fichier pdf lorsque le projet a été exporté dans un fichier exécutable, le fichier ne s'ouvre pas !!

c'est mon écouteur de bouton

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
}
}


}

Réponses:

0 pour la réponse № 1

Ne référencez jamais de contenu dans le src répertoire, lorsque votre projet est construit, le src répertoire n'existera pas.

Le contenu contenu dans le contexte de votre application (en particulier ceux qui sont inclus dans un fichier Jar) n'est normalement pas accessible en tant que File (comme vous le faites à partir du système de fichiers), ils deviennent une entrée dans votre fichier Jar d'applications.

Dans ce cas, vous devrez extraire le fichier avant de pouvoir l'ouvrir.

Ce que vous pouvez faire, c'est utiliser Class#getResourceAsStream et copiez le résultat InputStream sur le disque

Par exemple...

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();
}