我只能在数据库名称包含like(new database(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);
}
Run Code Online (Sandbox Code Playgroud)
假设我的数据库名称de mo意味着当我打印行时,我得到了像de only这样的数据库名称.数据库名称是否有空格?
Von*_*onC 15
你熟悉exec双引号错误吗?(用于Runtime.exec或ProcessBuilder)
你可以试试:
Runtime.getRuntime().exec(new String[] {
"\"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump\"",
"-h",
hostName+user+databaseName});
Run Code Online (Sandbox Code Playgroud)
只要确保你必须传递的所有参数都不包含双引号(而不是以双引号开头)
(参见 错误6511002)
任何参数如:
mykey="my value with space"
Run Code Online (Sandbox Code Playgroud)
将在内部(通过getRuntime()实施)改为
"mykey="myvalue with space""
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,您需要对参数进行标记:
{"mykey=\"my\"" , "\"value with space\""}
Run Code Online (Sandbox Code Playgroud)