我试图在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(new String[] {"lisp_image", "--eval ", "\'(package::method ",
"--eval ", "\"", "some_argument", "\")", "\'"});
以及使用反斜杠转义的各种事情。没有任何作用....使用String Array似乎只适用于Unix(或Windows)命令。
有什么想法吗?
提前致谢, 斯文
答案 0 :(得分:12)
据我所知,你想调用带有两个参数的list_image, - eval和'(package :: method \“some_argument \”)',其中单引号就是为了防止shell将其分解为多个论点。
然后你应该使用
Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval", "(package::method \"some_argument\")"});