我正在尝试从java运行mysql命令,该命令使用apache commons-exec从sql脚本文件获取输入,如下所示
filepath = /path/to/file.sql
CommandLine commandLine = new CommandLine("mysql -uuser -ppassword dbname");
commandLine.addArgument("<");
commandLine.addArgument(filepath);
Executor executor = new DefaultExecutor();
executor.execute(commandLine);
但我一直收到以下错误
[junit] java.io.IOException:无法运行程序“mysql -uuser -ppassword dbname“(在目录”。“中):error = 2,没有这样的文件或目录
当我在终端上运行时, 命令正常执行,db被修改。为什么会这样?
答案 0 :(得分:0)
试试CmdTool库。
String filepath ="/path/to/file.sql";
List<String> commandLine = new ArrayList<>(Arrays.asList("mysql", "-uuser", "-ppassword", "dbname"));
commandLine.add("<");
commandLine.add(filepath);
new Cmd().command(commandLine).execute();
或更简单
new Cmd().command("mysql", "-uuser", "-ppassword", "dbname", "<", filepath).execute();
您可以找到更多示例here。