我希望使用计算机上安装的关联程序(在本例中使用 MS Word 或 Open Office Writer)从 Java 应用程序打开文件(比如说,word 文档)。
问题是我想等到这个子进程完成,这可以使用 Process 类中的 waitFor() 方法来完成。
String executable = findAssociatedApplicationPath(); //for example, returns "C:\\Program Files\\Microsoft Office\\Office12\\msword.exe"
Process p = Runtime.getRuntime().exec(executable + " " + filepath);
p.waitFor();
有人可以告诉我如何编写 findAssociatedApplicationPath() 方法以便它返回正确的可执行文件吗?或者还有其他方法可以做到这一点吗?
使用关联程序打开文件的正确的独立于平台的方法是Desktop.open() http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#open(java.io.File)。不幸的是,它没有提供任何与结果过程交互的方式。
如果您愿意失去平台独立性,您可以使用start
命令输入cmd.exe
:
String fileName = "c:\\tmp\\test.doc";
String[] commands = {"cmd", "/c", "start", "\"Title\"",fileName};
Process p = Runtime.getRuntime().exec(commands);
p.waitFor()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)