日期:2014-05-16 浏览次数:20511 次
这个问题花费我两天时间,上网搜中文的资料大都换另一种方式解决的。说是在java中cmd不支持重定向,采用的另一种方式是得到Runtime.getRuntime().exec()的输入流,然后写到一个文本中。这个方法也不错(本人没有使用)。
今天要介绍的方法是调用本地的mysqldump.exe重定向的方式备份数据库。首先要说明的是mysqldump.exe在哪里不重要,重要的是要处理好路径中的非法字符。
那我的代码做例子吧。
上面我的mysqldump.exe的位置在本地的
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ui\WEB-INF\data\mau
直接调用肯定是不行的,因为路径中有空格。
解决方法是把空格换成
C:/Progra~1/Apache~1/Tomcat~1.0/webapps/ui/WEB-INF/data/mau
的样子。
这里分两种情况:
- Program Files
类似这种的直接保留前六个字母,再加“~1”就行了
- Tomcat 6.0 、tomcattomcat 6.0、tom 6.0、to 6.0
这个需要保留“.0”,最终换成Tomcat~1.0 、Tomcat~1.0 、tom6~1.0、to6~1.0规律一看都能看明白。但是要用代码实现对于我来说挺麻烦的。这里就不说我写的代码了。高手可以留下代码共后人瞻仰,我是没有这个水平。><
最终调用的结果: