【问题标题】:How to invoke Linux shell and set PATH to it?如何调用 Linux shell 并将 PATH 设置为它?
【发布时间】:2013-09-25 23:46:32
【问题描述】:

我想在 LINUX 中打开默认的 / 或 xterm(任何 Shell),我是用 ubuntu 12.xx 做的, 我可以调用 xterm shell,但是当我想设置它的路径时,它会说: 错误:无法执行/“路径”:没有权限 如何设置 xterm 或我在 JAVA 中调用的任何 shell 的路径??

else  {
            String path = getCurrentFolderName().toString();
            //Runtime r = Runtime.getRuntime();

            String[] shellcom = {"xterm",  path };
            //r.exec(shellcom).waitFor();
            Process p ;
            ProcessBuilder builder = new ProcessBuilder();
            //builder.directory(new File(path));
            builder = new Process Builder(shellcom);                
            p = builder.start();

              }
    }
        catch (IOException e) {
            System.err.println(e.toString());
            e.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
}

【问题讨论】:

    标签: java linux shell path


    【解决方案1】:

    您应该在创建ProcessBuilder 之后设置目​​录。以前没有。

            String[] shellcom = {"xterm"};
            Process p ;
            //builder.directory(new File(path));        // not here.
            builder = new ProcessBuilder(shellcom);                
            builder.directory(new File(path));          // here.
            p = builder.start();
    

    另外请注意,您不应将路径添加到字符串数组shellcom。如果这样做,路径将作为参数传递给 xterm,xterm 将假定它是应该执行的程序,从而导致错误 xterm: Could not exec /your/path/here: Permission denied

    【讨论】:

    • 好的,我刚刚这样做了,但它又说:无法执行/“路径”:没有权限..?
    • 谁说Could not exec /"path"?你的代码和我帖子里的一模一样吗?
    • 哎呀,我没有看到整个事情;)现在它可以工作了,非常感谢! :P
    • 再问一个问题......你知道这是否也适用于其他 LINUX 或 MAC 发行版?我用 Ubuntu 12.xx 对其进行了测试,但如果它也适用于(大多数)其他 UNIX 系统,那就太好了......问题可能是如果总是有一个 xterm shell,或者如果你有任何默认的 shell可以在每个 Unix 系统中应用/调用...可能不会
    • 它可以在每个安装了 GUI 和 xterm 的系统上运行:如果程序在文本控制台中运行,或者在没有 xterm 的系统上运行,它将无法运行。例如,较新版本的 OS X 没有它。此外,一些 Linux 发行版默认不附带xterm,但可以安装。
    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2020-04-04
    • 2015-10-26
    相关资源
    最近更新 更多