Простой пример - cd в каталог с более чем двумя словами. Когда я запускаю код ниже, я не получаю ожидаемую ошибку: /usr/bin/cd: line 2: cd: /Directory With Two Words: No such file or directory
, но эта ошибка: /usr/bin/cd: line 2: cd: '/Directory: No such file or directory
. Поэтому кажется, что он игнорирует апострофы и просто ищет каталог под названием «Каталог».Runtime Exec, кажется, игнорирует апострофы
Код:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String []args)
{
try
{
Process p = Runtime.getRuntime().exec("cd '/Directory With Two Words'");
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read any errors from the attempted command
System.out.println("Error:");
String s = null;
while ((s = stdError.readLine()) != null)
{
System.out.println(s);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}