java调用bat,命令行中存在空格问题

2014-11-24 10:53:12 · 作者: · 浏览: 0

//**************WinRAR解压rar*****************************
String exe="cmd.exe /C WinRAR.exe";
String rar="c:\\test\\ShavDATA ADMS\\Files\\Project15\\src\\aaa.rar";
String src="c:\\test\\ShavDATA ADMS\\Files\\Project15\\src";
String[] batStr=new String[]{ exe + " x -r -p- -o+ " + " \"" + rar + "\" \"" + src + "\"" };

String path="C:\\test\\a aa\\splint\\WinRAR";
String file="temp.bat";
String batpath=new File(path,file).getAbsolutePath();
FileWriter writer = new FileWriter(batpath);
for(int i=0;i writer.write(batStr[i] + "\r\n" );
writer.close();

Process process= Runtime.getRuntime().exec( "cmd.exe /C " + file , null , new File(path) );
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( process.getInputStream() ) );
String line = null;
while ( ( line = bufferedReader.readLine( ) ) != null )
System.out.println( line );
bufferedReader.close();
int count=process.waitFor();
System.out.println( count );

//**************aside_splint.exe解析代码*****************************
String realPath="C:\\test\\a aa\\splint";
String exePath="cmd.exe /C aside_splint.exe";
String optionPath= "splint_option.txt";
String symPath= "splint_sym_for_aside.txt";
String msgPath= "splint_msg_for_aside.txt";
String aut="Author";
String req="LLR";
String batStr= exePath + " " + optionPath + " " + symPath + " " + msgPath + " \"" + aut + "\" \"" + req + "\"" ;

Process process= Runtime.getRuntime().exec( batStr ,null, new File(realPath) );
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( process.getInputStream() ) );
String line = null;
while ( ( line = bufferedReader.readLine( ) ) != null )
System.out.println( line );
bufferedReader.close();
int count=process.waitFor();
System.out.println( count );
System.out.println( batStr );