我有这段代码:
public void openSelectedFiles(MouseEvent mouseEvent){
ListView<String> listView = (ListView<String>) ((Node) mouseEvent.getSource())
.getScene().lookup("#listOfReferenceFiles");
String selectedFileString = listView.getSelectionModel().getSelectedItem();
System.out.println(Desktop.isDesktopSupported());
File fileToOpen = new File(selectedFileString);
System.out.println(fileToOpen.exists());
try {
Desktop.getDesktop().open(fileToOpen);
} catch (IOException e) {
e.printStackTrace();
}
}
我正在使用 Java 8,它似乎工作正常,直到这一行:
Desktop.getDesktop().open(fileToOpen);
它不会抛出异常,它只是卡住我的应用程序。这是一个错误吗?
最佳答案
您必须先检查桌面是否允许以及文件是否存在以避免此类问题:
//first check if Desktop is supported by Platform or not
if(!Desktop.isDesktopSupported()){
System.out.println("Desktop is not supported");
return;
}
Desktop desktop = Desktop.getDesktop();
// after check if file exists and open it
if(file.exists()) desktop.open(file);
关于java - Java 中的 Desktop.getDesktop.open() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380282/