如何解决Runtime.getRuntimeexec
您熟悉exec
双引号错误吗?(用于Runtime.exec
或ProcessBuilder
)
你可以试试:
Runtime.getRuntime().exec(new String[] {
"\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump\"",
"-h",
hostName+user+databaseName});
(请参见 )
任何类似的参数:
mykey="my value with space"
将在 内部 (通过getRuntime()
实现)更改为
"mykey="myvalue with space""
如果是这种情况,则需要标记该参数:
{"mykey=\"my\"" , "\"value with space\""}
解决方法
仅当数据库名称包含(新数据库(myid)等)时,我才能读取文件。我给出以下示例代码:
dumpCommand = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump -h"+hostName+user+databaseName;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(dumpCommand);
InputStream in = proc.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String line =null;
while((line=br.readLine())!=null)
{
//able to read line only when database name like abc,datastore etc...
System.out.println(line);
}
假设我的数据库名称de mo是指我在打印行时得到的数据库名称仅是de。数据库名称带有空白时可以吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。