lo que realmente necesita para ejecutarlo en un shell (por ejemplo, qué necesita para bombardear expansión de las cosas como ~
o *
, etc.)? Si no, usted podría invocar ln
directamente:
Process p =
Runtime.getRuntime()
.exec(new String[]{"/bin/ln","-s","dir1/dir2", "my\\ dir/dir2"});
Si realmente necesita una concha, probar este (esto puede necesitar un poco de ajuste en función de cómo procesa la cáscara de las comillas):
Process p =
Runtime.getRuntime()
.exec(new String[]{"/bin/sh", "-c", "ln -s \"dir1/dir2\" \"my\\ dir/dir2\""});
Editar:
Tenía la impresión de que el segundo camino tiene una barra invertida literal. Si no se supone que debe eliminar el \\
de los literales de cadena de arriba.
' "mi \ dir/directorio2"' no es una cadena válida en Java porque ' "\" 'es no es una secuencia de escape válida Pruebe '" my \\ dir/dir2 "'. –
No, ese es el resultado cuando imprimo en la cadena. Ya estoy usando "\\" – LanguagesNamedAfterCofee
Ah, está bien. Eso no estaba claro. ¿Estás usando OS X por casualidad? http://stackoverflow.com/questions/697621/ –