Using quotes and double quotes in Java Runtime.getRuntime().exec(…)

ⅰ亾dé卋堺 提交于 2019-12-07 06:44:36

问题


I am trying to start a Lisp Image from Java in Mac OSX. Using the Image from my console I type the following:

lisp_image --eval '(package::method "some_argument")'

everything runs fine.

In Java I have the problem to pass the quotes and double quotes using the Runtime.getRuntime().exec("lisp_image --eval '(package::method \"some_argument\")'").

I also tried to use :

Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval ", "\'(package::method ", 
           "--eval ", "\"", "some_argument", "\")", "\'"});

and various things with escaping using the backslash. Nothing works.... Using String Array seems to work only for Unix (or Windows) commands.

Any ideas?

Thanks in advance, Sven


回答1:


As I understand it you want to invoke the list_image with two arguments, --eval and '(package::method \"some_argument\")' where the single quotes is just there to prevent the shell from breaking it up into multiple arguments.

Then you should use

Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval", "(package::method \"some_argument\")"});


来源:https://stackoverflow.com/questions/8413254/using-quotes-and-double-quotes-in-java-runtime-getruntime-exec

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!