如何解决Runtime.getRuntime()。exec()?
您熟悉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。数据库名称带有空白时可以吗?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。