Я пытаюсь выполнить команду Linux из своего java-класса, используя метод exec () из класса Runtime следующим образом:
public static String xxUtilInfoFile (String sPath , String sFileName) throws Exception
{
Runtime r = null;
Process p = null;
String line_value="";
String output_data="";
/*execute the process*/
r = Runtime.getRuntime();
p = r.exec("file -bi " + sPath + sFileName);
p.waitFor();
/*Return the standard error output*/
BufferedReader in=new BufferedReader(new InputStreamReader(p.getInputStream()));
output_data = in.readLine();
return output_data;
}
Команда Linux, которую я хочу использовать, - file -bi fileName
ион работает хорошо, за исключением случая, когда внутри fileName есть пробелы, и в этом суть.
Я уже пытался использовать двойные кавычки и обратную косую черту (\
), потому что этот метод работает в консоли Linux bash, но он не запускается, если я передаю его в качестве аргумента метода exec.
Может ли кто-нибудь помочь мне решить эту проблему?