我正在尝试从java中打开外部编辑器中的文件,但是当我运行源代码时,没有任何反应。我使用的是JRE 1.6,我的操作系统是Windows 7.这是我的源代码:
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
desktop.edit(new File("D:\\Document.rtf"));
答案 0 :(得分:1)
以下内容也应该有效:
Runtime.getRuntime().exec( "cmd /C D:\\Document.rtf" );
或
Runtime run = Runtime.getRuntime();
String lcOSName = System.getProperty("os.name").toLowerCase();
boolean MAC_OS_X = lcOSName.startsWith("mac os x");
if (MAC_OS_X) {
run.exec("open " + file);
} else {
//run.exec("cmd.exe /c start " + file); //win NT, win2000
run.exec("rundll32 url.dll, FileProtocolHandler " + path);
}
答案 1 :(得分:0)
public void edit(File file) throws IOException
启动关联的编辑器应用程序并打开文件进行编辑。
参数: file - 要打开以进行编辑的文件 抛出: NullPointerException - 如果指定的文件为null IllegalArgumentException - 如果指定的文件不存在 UnsupportedOperationException - 如果当前平台不支持Desktop.Action.EDIT操作 IOException - 如果指定的文件没有关联的编辑器,或者关联的应用程序无法启动 SecurityException - 如果存在安全管理器且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读访问,或者SecurityManager.checkWrite(java.lang.String)方法拒绝对该文件的写访问,或者它拒绝AWTPermission(“showWindowWithoutWarningBanner”)权限,或者不允许调用线程创建子进程 也可以看看: 的AWTPermission
你测试过,并从
打印StackTrace