我正在尝试使用
Runtime.getRuntime().exec("Here_I_am.txt");
但是得到的错误表明Here_I_am.txt
不是Win32应用程序。
因此,如果用户只需点击.extension
文件,我就应该知道将执行哪个程序
与txt
默认情况下一样,它将是Notepad.exe
那么 - 我怎样才能获得这些信息?
P.S。
我确定这个应用程序不会在Linux上使用。
答案 0 :(得分:1)
您必须通过命令shell调用它:
Runtime.getRuntime().exec("cmd /c Here_I_am.txt");
答案 1 :(得分:1)
您可以使用Desktop.open(File)
1 。如果您需要获取特定文件夹(如主目录),您还可以添加System.getProperty("user.home")
。像,
File file = new File(System.getProperty("user.home"), "Here_I_am.txt");
try {
System.out.printf("File path %s%n", file.getCanonicalPath());
Desktop.getDesktop().open(file);
} catch (IOException e) {
e.printStackTrace();
}
1 具有小优势,它可以在Windows,Linux和Mac上运行。另见How to Integrate with the Desktop Class。