这是输出:
文件:/Users/miladvosoughi/Documents/Prak/schach/target/classes/mainMenu/ba.pdf
文件不存在!
private void openHelpPDF() {
try {
String adr = getClass()
.getResource("/mainMenu/ba.pdf").toString();
System.out.println(adr);
File pdfFile = new File(adr);
if (pdfFile.exists()) {
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(pdfFile);
} else {
System.out.println("Awt Desktop is not supported!");
}
} else {
System.out.println("File is not exists!");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
答案 0 :(得分:3)
String adr = getClass().getResource("/mainMenu/ba.pdf").toString();
不返回文件名。 The object returned from Class.getResource is a URL.
应用程序资源不是文件。您永远无法确定它是文件。
如果要传递资源,则必须将资源URL复制到一个临时文件,然后打开该文件:
Path pdf = Files.createTempFile(null, ".pdf");
try (InputStream source =
getClass().getResourceAsStream("/mainMenu/ba.pdf")) {
Files.copy(source, pdf,
StandardCopyOption.REPLACE_EXISTING);
}
Desktop.getDesktop().open(pdf.toFile());