我试图以这种方式在默认程序中打开.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)
我已经检查了默认程序。没有错。那么问题是什么?
答案 0 :(得分:3)
显然,文件具有要运行的关联应用程序这一事实并不意味着可以应用“打开”操作。
没有应用程序与此操作的指定文件相关联。。
(强调我的)
“开放”操作不适用。如果右键单击 DATAFILE17.jpg 会发生什么?对我而言,它显示为编辑。这可能是发布的实际行动。
当然,它可以从计算机到计算机,但我的猜测是动作是“编辑”。试试这个:
Desktop.getDesktop().edit(image);
方法isSupported(Desktop.Action action)
返回是否支持该操作。