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

Java Runtime.getruntime().exec无法在Ubuntu上与gedit正常工作,java,ubuntu,runtime,gedit,Java,Ubuntu,Runtime,Gedit,我需要通过java代码从Ubuntu上的某个位置(e.x./usr/local/share/SomeFolder/Readme.txt)打开一个txt文件 我在gedit中使用了Runtime.getRuntime.exec(字符串)和Runtime.getRuntime().exec(args),但它会在Readme.txt文件旁边打开一个新选项卡 代码如下 String x="gedit /usr/local/share/SomeFolder/Readme.txt"; Runtime.get

我需要通过java代码从Ubuntu上的某个位置(e.x./usr/local/share/SomeFolder/Readme.txt)打开一个txt文件

我在gedit中使用了Runtime.getRuntime.exec(字符串)和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)
String x=“gedit/usr/local/share/SomeFolder/Readme.txt”;
Runtime.getRuntime.exec(x);
字符串[]args={“gedit”,“/usr/local/share/SomeFolder/Readme.txt”};
Runtime.getRuntime().exec(args)
我也尝试过使用ProcessBuilder,但其行为方式相同。我也探索了gedit的不同选择,但仍然没有成功

当我从终端运行“gedit/usr/local/share/SomeFolder/Readme.txt”时,它只打开一个实例和Readme.txt文件的实例

也许是gedit被编程成这样,或者我做错了什么

任何帮助都将不胜感激

我使用的是64位的Ubuntu12.04LTS和EclipseJunoSR2(JDK1.7u51)


谢谢

试试这个,我刚刚使用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();
    }

使用
ProcessBuilder
说明我也使用了它。共享使用
ProcessBuilder
的代码您会遇到哪些错误?您正在阅读
进程的输出吗?这很可能是gedit的一种行为,您只能解决它。可能类似于
Runtime.getRuntime.exec(“bash-cgedit/usr/local/share/SomeFolder/Readme.txt”)可以帮忙。谢谢。但这也会在现有的文档窗口旁边打开一个新的文档窗口。未打印控制台日志。我使用的是Ubuntu 12.04 LTS,64位Eclipse Juno SR2(JDK 1.7u51),可能我误解了,那么你想实现什么呢?我想在使用gedit启动txt文件时防止启动另一个文档实例。当我使用process builder/runtime.getRuntime启动它时,它会打开一个附加窗口。请尝试一下,看看它会打开另一个实例。我在CentOS上工作,用相同的代码看到这个结果。我试图更改文件名。我正在使用Ubuntu,无法在您拥有的环境中测试它。如果你有机会,请在Ubuntu上测试它。