The check below is too OS dependent and should be deleted. ... binPath += File.separatorChar + "bin" + File.separatorChar + executable; File toolFile = new File(binPath); ==> if (!toolFile.exists()) { throw new RuntimeException(binPath + " does not exist"); } ... On windows if executable is specified as e.g. 'java', without '.exe', the File exists() will fail. But it's still possible to run executable.