Runtime.getruntime()。exec在Ubuntu上与gedit无法正常工作

时间:2014-12-01 06:45:26

标签: java ubuntu runtime gedit

我需要通过我的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)

谢谢!

1 个答案:

答案 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();
    }