我有与CSV文件一起工作的Java桌面应用程序。我想要添加一些功能。此时,我需要用默认的系统文本编辑器打开选定的文件。当我在Windows上运行我的程序时,只要调用notepad.exe就没有问题,但是*nix系统该怎么办呢?一种解决方法是在程序选项中自定义设置首选文本编辑器的方式,但这不是最好的解决方案...
但也许它会更好地添加到程序自己的文本编辑器,即使功能较少?
发布于 2009-05-07 10:31:28
我相信java.awt.Desktop.edit()可能就是你想要的,尽管它会启动操作系统认为应该用来编辑文件的任何东西,在CSV的情况下,这通常是一个电子表格应用程序,而不是文本编辑器-也许你可以暂时或永久地将文件重命名为TXT。
发布于 2009-05-07 10:29:24
对于这些功能,我认为使用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});发布于 2009-05-07 12:19:31
试试这个:
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的,请记住将库从默认的MacOS10.5(JVM1.5)更改为JVM1.6,否则java.awt.Desktop将无法解析。
但是,正如Michael Borgwardt所提到的,这不会打开文本编辑器。在我的例子中,它会打开MS Excel。
有关更多信息,请查看java api:
java.awt.Desktop
java.io.File
https://stackoverflow.com/questions/833828
复制相似问题