我有使用CSV文件的Java桌面应用程序。我想添加一些功能。此时我需要使用默认的系统文本编辑器打开所选文件。当我在Windows上运行我的程序时我没有问题,只需调用notepad.exe,但是如何处理* nix系统? 解决方案的一种方法是在程序选项中自定义设置文本编辑器的方式,但这不是最佳解决方案......
但也许最好添加到程序自己的文本编辑器,即使功能较少?
答案 0 :(得分:6)
我相信java.awt.Desktop.edit()
可能正是您所寻找的,虽然它会启动操作系统认为应该编辑该文件的任何内容,在CSV的情况下通常是电子表格应用而不是文本编辑器 - 也许你可以暂时或永久地将文件重命名为TXT。
答案 1 :(得分:2)
对于此类功能,我认为使用JTextArea并提供您自己的基本文本编辑器要好得多。
无论如何,请看BareBonesBrowserLauncher。它是一个Java类,允许您在任何平台上启动默认浏览器。您可以根据自己的需要进行调整。从那里复制:
String[] editors = { "vim", "emacs", "vi",};
String editor = null;
for (int count = 0; count < editors.length && editors == null; count++)
if (Runtime.getRuntime().exec( new String[] {"which", editors[count]}).waitFor() == 0)
editor = editors[count];
if (editor == null)
throw new Exception("Could not find editor");
else Runtime.getRuntime().exec(new String[] {editor, filename});
答案 2 :(得分:1)
试试这个:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
public class systemEditor {
public static void main(String[] args) {
Desktop dt = Desktop.getDesktop();
try {
dt.open( new File("FileName.csv") );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果该应用程序适用于Mac,请记得将库从默认的Mac OS 10.5(JVM 1.5)更改为JVM 1.6,否则将无法解析java.awt.Desktop。
这不会打开文本编辑器,正如Michael Borgwardt所提到的那样。它在我的情况下打开MS Excel。
如需了解更多信息,请查看java api: