Question

I am trying to figure out why the code below is throwing a

java.lang.Exception: No such file or directory

Exception

        ProcessBuilder send = new ProcessBuilder("/bin/bash","/opt/ftp/scripts/XFER.sh | /opt/ftp/myftp -c /opt/ftp/ftp.conf >> /logging/ftp.log2>&1");
        Process sendProcess = send.start();
        br = new BufferedReader(new InputStreamReader(sendProcess.getErrorStream()));
        builder = new StringBuilder();
        line = null;
        while ( (line = br.readLine()) != null) {
           builder.append(line);
           builder.append(System.getProperty("line.separator"));
        }
        if(!builder.toString().isEmpty()){
            throw new Exception( "ERROR with XFER.sh: "+builder.toString() );
        }   

I've tried isolating the arguments within a String Array, but that did not work either. Any ideas as to what may be causing this stacktrace?

Was it helpful?

Solution

I have success using the following code. Maybe you have to use the -c option:

private static int execute(String command) {
    Runtime runtime = null;
    Process process = null;

    int exitValue = -1;
    BufferedInputStream bis = null;

    try {
        runtime = Runtime.getRuntime();

        process = runtime.exec(new String[] { "/bin/bash", "-c", command });
        bis = new BufferedInputStream(process.getInputStream());

        byte[] b = new byte[1892];
        while (bis.read(b) != -1) {
        }

        exitValue = process.waitFor();

        if (bis != null) {
            try {
                bis.close();
            } catch (IOException e) {
            }
        }
        if (process != null) {
            process.destroy();
        }
    } catch (Exception e) {
        //Logging
    }

    return exitValue;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top