Java中的Desktop.getDesktop.open()失败
我有一段代码:Java中的Desktop.getDesktop.open()失败,java,javafx,Java,Javafx,我有一段代码: public void openSelectedFiles(MouseEvent mouseEvent){ ListView<String> listView = (ListView<String>) ((Node) mouseEvent.getSource()) .getScene().lookup("#listOfReferenceFiles"); String selectedFileString = listVi
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();
}
}
public void openSelectedFiles(MouseEvent MouseEvent){
ListView ListView=(ListView)((节点)mouseEvent.getSource()
.getScene().lookup(“#引用列表”);
String selectedFileString=listView.getSelectionModel().getSelectedItem();
System.out.println(Desktop.isDesktopSupported());
File fileToOpen=新文件(selectedFileString);
System.out.println(fileToOpen.exists());
试一试{
Desktop.getDesktop().open(fileToOpen);
}捕获(IOE异常){
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);
您必须首先检查是否允许使用桌面以及文件是否存在,以避免此类问题:
//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);
文件fileToOpen
存在?如果System.out.println(Desktop.isDesktopSupported())打印为true,我会回答是。是的,它们打印为true,并且文件存在/您在什么平台(操作系统和JRE版本)上运行此操作?文件fileToOpen
存在?如果System.out.println,我会回答是(Desktop.isDesktopSupported())打印为true。是的,它们打印为true,并且文件存在/您在哪个平台(操作系统和JRE版本)上运行此操作?尝试了。复制了完全相同的代码。没有。我得到了相同的数据。复制了完全相同的代码。没有。我得到了相同的数据