Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未能执行子进程“';scriptName.sh”;(无此类文件或目录)_Java_Shell_Terminal_Process_Runtime - Fatal编程技术网

Java 未能执行子进程“';scriptName.sh”;(无此类文件或目录)

Java 未能执行子进程“';scriptName.sh”;(无此类文件或目录),java,shell,terminal,process,runtime,Java,Shell,Terminal,Process,Runtime,在我执行这行代码之后,我得到了上面的错误。我的脚本位于桌面文件夹中。我已尝试添加./startDemonstrator和完整路径。我总是得到上面的错误。原因可能是什么 打开终端后,我正在尝试打开一个sh脚本。请先尝试以下操作:- String command= "/usr/bin/gnome-terminal.wrapper -e 'startDemonstrator.sh; bash'"; File workDir = new File("/home/malju/Desktop"); Proc

在我执行这行代码之后,我得到了上面的错误。我的脚本位于桌面文件夹中。我已尝试添加./startDemonstrator和完整路径。我总是得到上面的错误。原因可能是什么

打开终端后,我正在尝试打开一个sh脚本。

请先尝试以下操作:-

String command= "/usr/bin/gnome-terminal.wrapper -e 'startDemonstrator.sh; bash'";
File workDir = new File("/home/malju/Desktop");
Process pr = Runtime.getRuntime().exec(command, null, workDir);
如果仍然无法工作,请使用ProcessBuilder尝试以下方法

String command= "/home/malju/Desktop/startDemonstrator.sh";
Process pr = Runtime.getRuntime().exec(command);
p.waitFor();

请提供您用于手动执行的命令。它是否像
/usr/bin/gnome-terminal.wrapper-e'startDemonstrator.sh;bash'
@AbhijitPritamDutta你是说当我用终端打开它时?我只需转到dekstop文件夹并在那里打开终端,然后输入:./startDemonstrator.shit仍然无法工作。。。。“无法执行子进程”/home/malju/Desktop/startDemonstrator.sh;“(没有这样的文件或目录)”@kokos123,我已经修改了答案。现在try@Abijit我不想直接给scirpt打电话。我想打开终端,在终端打开后,我想在我的工作目录中执行scirpt
    String result = "";
    String[] command = {"/home/malju/Desktop/startDemonstrator.sh"};
    ProcessBuilder process = new ProcessBuilder(command); 
    Process p ;
    try {
        p = process.start();
        InputStream is = p.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader reader =  new BufferedReader(isr);
        StringBuilder builder = new StringBuilder();
        String line = null;
        while ( (line = reader.readLine()) != null) {
                builder.append(line);
                builder.append(System.getProperty("line.separator"));
        }
        result = builder.toString();
    }
    catch (IOException e)
    {   System.out.print("error");
        e.printStackTrace();
    }