sve*_*wan 5 lisp java unix runtime runtime.exec
我试图在Mac OSX中从Java启动一个Lisp图像.使用我的控制台中的图像我输入以下内容:
lisp_image --eval '(package::method "some_argument")'
Run Code Online (Sandbox Code Playgroud)
一切顺利.
在Java中,我有问题是使用引号传递引号和双引号 Runtime.getRuntime().exec("lisp_image --eval '(package::method \"some_argument\")'").
我也试过用:
Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval ", "\'(package::method ",
"--eval ", "\"", "some_argument", "\")", "\'"});
Run Code Online (Sandbox Code Playgroud)
和使用反斜杠逃避的各种事情.没有任何作用....使用String Array似乎只适用于Unix(或Windows)命令.
有任何想法吗?
谢谢你,斯文
Rog*_*sjö 12
据我所知,你想调用带有两个参数的list_image, - eval和'(package :: method \"some_argument \")',其中单引号就是为了防止shell将其分解为多个参数.
那你应该用
Runtime.getRuntime().exec(new String[] {"lisp_image", "--eval", "(package::method \"some_argument\")"});
Run Code Online (Sandbox Code Playgroud)