没有应用程序与此操作的指定文件关联。错误

时间:2017-07-07 09:02:06

标签: java

我试图以这种方式在默认程序中打开.jpg文件:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Test {
public static void main(String[] args) throws IOException {
    File image = new File(System.getProperty("user.home") +         
"/Desktop/project/XL-116/DATAFILE17.jpg");
    try {
        java.awt.Desktop.getDesktop().open(image);
    } catch (FileNotFoundException ex) {
        // .....
    }
}
}

我有这个错误:

Exception in thread "main" java.io.IOException: Failed to open C:\Users\khuda 
Dad\Desktop\project\XL-116\DATAFILE17.jpg. Error message: No application is 
associated with the specified file for this operation.

at sun.awt.windows.WDesktopPeer.ShellExecute(Unknown Source)
at sun.awt.windows.WDesktopPeer.open(Unknown Source)
at java.awt.Desktop.open(Unknown Source)
at Test.main(Test.java:9)

Screenshot of program association

我已经检查了默认程序。没有错。那么问题是什么?

1 个答案:

答案 0 :(得分:3)

显然,文件具有要运行的关联应用程序这一事实并不意味着可以应用“打开”操作。

  

没有应用程序与此操作的指定文件相关联。

(强调我的)

“开放”操作不适用。如果右键单击 DATAFILE17.jpg 会发生什么?对我而言,它显示为编辑。这可能是发布的实际行动。

当然,它可以从计算机到计算机,但我的猜测是动作是“编辑”。试试这个:

Desktop.getDesktop().edit(image);

方法isSupported(Desktop.Action action)返回是否支持该操作。