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