Java Runtime.getRuntime.exec()无法正常工作

Java Runtime.getRuntime.exec()无法正常工作,java,linux,Java,Linux,我正在尝试使用Runtime.getRuntime.exec()运行javac命令; 当我将命令粘贴到bash中时,该命令本身运行良好,但由于某些原因,当从程序中执行它时,该命令不起作用 命令 javac -cp $(find '/root/discobo/libs' -type f -printf '%p:') -sourcepath '/root/discobo/git/Bot/src' $(find '/root/discobo/git/Bot/src' -name '*.java') -

我正在尝试使用Runtime.getRuntime.exec()运行javac命令; 当我将命令粘贴到bash中时,该命令本身运行良好,但由于某些原因,当从程序中执行它时,该命令不起作用

命令

javac -cp $(find '/root/discobo/libs' -type f -printf '%p:') -sourcepath '/root/discobo/git/Bot/src' $(find '/root/discobo/git/Bot/src' -name '*.java') -d '/root/discobo/target' -Xlint:all
我已经尝试过使用JavasProcessBuilder,但遗憾的是,它给了我同样的结果

它给了我以下错误

javac:无效标志:'/root/discobo/libs/'

这对我来说毫无意义,因为命令从bash开始就可以正常工作


我希望有人对此有一个解决方案:)提前感谢您使用的find命令只有bash才能理解。因此,如果在bash上执行此操作,bash将用实际结果(即文件)扩展或替换$(find),然后用实际文件列表调用javac

因此,在使用Runtime.getRuntime.exec()执行相同操作时,请使用

希望这有帮助。

与其说是
查找
,不如说是
$(…)
。而且它不像任何华丽的贝壳那样令人兴奋。就像一个符咒:)谢谢
Runtime.getRuntime.exec("bash -c \"javac -cp $(find '/root/discobo/libs' -type f -printf '%p:') -sourcepath '/root/discobo/git/Bot/src' $(find '/root/discobo/git/Bot/src' -name '*.java') -d '/root/discobo/target' -Xlint:all\"")