使用默认程序在Java中打开文件的问题

时间:2012-08-12 23:39:44

标签: java

嗨我试图用java程序打开word文件。该程序给我以下错误“

Cannot make a static reference to the non-static method open(File) from the type Desktop

我不知道如何解决这个问题。你能帮我么。谢谢。下面是代码片段。

@Override
public void actionPerformed(ActionEvent e) {
    List<File> files;
    File startingDirectory = new File("C:/Hello/");
    try {
        files = getFileListing(startingDirectory);
        for (File file : files){
            Desktop.open(file);
        }

    } catch (FileNotFoundException ex) {
        System.out.println("File Not Found");
}

2 个答案:

答案 0 :(得分:1)

尝试

Desktop.getDesktop().open(file);

代替

您还应该检查Desktop.isDekstopSupported以确保您尝试执行的功能存在

答案 1 :(得分:1)

您需要首先实例化Desktop对象,如下所示:

Desktop d = Desktop.getDesktop();

之后,您可以在桌面对象上调用实例方法,如下所示:

d.open(file);

在您的代码中,您尝试在 open()上调用实例方法Desktop,但这不起作用。可以在类上调用的唯一方法是 static 方法,需要在相应类的实例上调用所有其他方法。