我需要通过我的java代码从Ubuntu(e.x. /usr/local/share/SomeFolder/Readme.txt)上的某个位置打开一个txt文件。
我在运行gedit时使用了Runtime.getRuntime.exec(String)和Runtime.getRuntime()。exec(args),但它在Readme.txt文件旁边打开了一个新选项卡。
代码如下
String x="gedit /usr/local/share/SomeFolder/Readme.txt";
Runtime.getRuntime.exec(x);
<OR>
String[] args={"gedit","/usr/local/share/SomeFolder/Readme.txt"};
Runtime.getRuntime().exec(args)
我也尝试过使用ProcessBuilder但它的行为方式相同。此外,我已经探索了不同的gedit选项,但仍然没有运气。
当我从终端运行“gedit /usr/local/share/SomeFolder/Readme.txt”时,它只打开一个实例和Readme.txt文件的实例。
也许gedit被编程为以这种方式行事,或者我做错了什么。
任何帮助将不胜感激。
我正在使用Ubuntu 12.04 LTS,64位Eclipse Eclipse Juno SR2(JDK 1.7u51)
谢谢!
答案 0 :(得分:1)
试试这个,我刚刚使用ProcessBuilder测试
ProcessBuilder pb = new ProcessBuilder("gedit", "/home/honey/filename.json");
pb.redirectOutput(Redirect.INHERIT);
Process p = pb.start();
p.waitFor();
//This will print console logs of your process
InputStream is = null;
try {
is = p.getInputStream();
int in = -1;
while ((in = is.read()) != -1) {
System.out.print((char) in);
}
} finally {
is.close();
}