I want to execute database import from .sql file from java program. My program is working fine on windows. But I am facing problem on linux machine.
Code –
try {
ProcessBuilder builder = new ProcessBuilder("mysql -u root -p password db-name < db_script.sql");
builder.redirectErrorStream(true);
Process pr = builder.start();
InputStream is = pr.getInputStream();
// Now read from it and write it to standard output.
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
I am getting – java.io.IOException: Cannot run program “mysql -u root
-p password db-name < db_script.sql”:
java.io.IOException: error=2, No such file or directory
The above command is working fine on linux terminal.
Some one please advice me on this.
Thanks in advance
The < redirection is a shell thing. Try something like this:
UPDATE:
Otherwise, if you’re using java 7+, you can do the redirection in java: