Garmaine Staff asked 2 years ago

IDE used: IntelliJ
System OS: Windows
Commands tried: ProcessBuilder, Runtime.exec()

I am executing file (mentioned below). It executes perfectly in terminal but in IntelliJ, it throws the following error. The same happens with both ProcessBuilder and Runtime.exec().

"C:\Program Files\Java\jdk1.8.0_241\bin\java.exe"
Exception in thread "main" Cannot run program "echo": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(
    at TestSample.Main.main(
Caused by: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(
    at java.lang.ProcessImpl.start(
    at java.lang.ProcessBuilder.start(
    ... 1 more

Process finished with exit code 1

Why is it happening? Can someone help me resolve this issue?

    public static void main(String[] args) throws InterruptedException,IOException{

        ProcessBuilder builder = new ProcessBuilder("echo", "This is ProcessBuilder Example");
        Process p=builder.start();
        int errcode = p.waitFor();
        System.out.println("Program is executed successfully?"+(errcode == 0 ?"No":"Yes"));
        System.out.println("Echo Output:\n" + output(p.getInputStream()));

    private static String output(InputStream inputStream) throws IOException {
        StringBuilder sb = new StringBuilder();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(inputStream));
            String line = null;
            while ((line = br.readLine()) != null) {
                sb.append(line + System.getProperty("line.separator"));
        } finally {
        return sb.toString();

This code is retrieved from