我有一个shell命令(mysql),我在如何使用getruntime在java中运行它时遇到问题:
sql=$(mysql -u cactiuser -ppassword cacti -s -N -e "select name_cache, name from data_template_data where data_source_path=\"<path_rra>/test.rrd\";" | sed 's/\t/,/g')
爪哇:
String command = "<sql above>";
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
shell命令非常复杂,因为它有sed,我不知道如何正确地隔离它们以在getruntime中运行。非常感谢帮助。
答案 0 :(得分:0)
您应该使用与mysql的jdbc连接。忘记为此调用一个shell脚本,很丑陋而且非常无效。
更多信息: http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-connect-drivermanager.html
获得数据后,可以用java代码编辑,而不是sed。