使用java执行Linux命令以及注意事项

场景说明:

  之前有个业务需要在java中创建数据库用户,最终采用了执行拼接shell命令的方式解决;

解决方式:

String sb = "mysql -u*** -p*** -e "创建用户的sql" ";
Process process = Runtime.getRuntime().exec (sb);

  但是发现,指令没有问题的前提下,数据库没有成功添加用户,最终发现,对于复杂的拼接的shell指令,需要在java中特殊声明一下(不然会自动截断执行,导致不成功),正确的解决方式如下:

String sb = "mysql -u*** -p*** -e "创建用户的sql" ";
String cmds = {"sh","-c",sb};
Process process = Runtime.getRuntime().exec (cmds);

  这样就么得问题了~且行且填坑

原文地址:https://www.cnblogs.com/smallVampire/p/13364460.html