我想通过Java代码在MS Windows中打开记事本程序来打开我的文本文件。
请帮助我这样做。
答案 0 :(得分:10)
如果使用Java 1.6,可以使用java.awt.Desktop
,.txt
已注册到记事本并且支持Desktop:
if (!Desktop.isDesktopSupported()) {
System.err.println("Desktop not supported");
// use alternative (Runtime.exec)
return;
}
Desktop desktop = Desktop.getDesktop();
if (!desktop.isSupported(Desktop.Action.EDIT)) {
System.err.println("EDIT not supported");
// use alternative (Runtime.exec)
return;
}
try {
desktop.edit(new File("test.txt"));
} catch (IOException ex) {
ex.printStackTrace();
}
通过这种方式,您可以以更独立于操作系统的方式打开/编辑文件。
答案 1 :(得分:3)
Runtime.getRuntime().exec("notepad c:/asd.txt");
其中c:/asd.txt
是文本文件的完整路径。如果/
不适合您,请改用\\
。
答案 2 :(得分:3)
使用ProcessBuilder类
Process p = new ProcessBuilder("notepad", "file.txt").start();
答案 3 :(得分:3)
如果您在操作系统上注册了.txt扩展名并且您的文本文件已经存在,那么您甚至可以做到
Runtime.getRuntime().exec(new String[]{"cmd.exe","/c","text.txt"});
优点是它会使用与.txt相关的程序,这可能与notepad.exe不同。