如何解决Runtime.getRuntime()。exec()?

您熟悉exec双引号错误吗?(用于Runtime.execProcessBuilder

你可以试试:

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。数据库名称带有空白时可以吗?