我正试图在Mac OSX上从Java启动一个Lisp图像。 从我的控制台使用图像我键入以下内容:
lisp_image --eval '(package::method "some_argument")'
一切运行良好。
在Java中,我有问题使用Runtime.getRuntime().exec("lisp_image --eval '(package::method \"some_argument\")'").
来传递引号和双引号Runtime.getRuntime().exec("lisp_image --eval '(package::method \"some_argument\")'").
我也试着用:
Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval ", "\'(package::method ", "--eval ", "\"", "some_argument", "\")", "\'"});
以及用反斜杠转义的各种东西。 没有什么作品….使用string数组似乎只适用于Unix(或Windows)命令。
有任何想法吗?
在此先感谢,斯文
据我所知,你要调用list_image两个参数,–eval和'(package :: method \“some_argument \”)'单引号就在那里,以防止shell分解成多个参数。
那么你应该使用
Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval", "(package::method \"some_argument\")"});