Java运行时或Processbuilder或其他

Java运行时或Processbuilder或其他,java,runtime,processbuilder,Java,Runtime,Processbuilder,我想知道从Java运行命令行可执行文件的最佳替代方案是什么。这些命令的目标平台是Windows 7(+)和Unix/Linux 我有一个类当前使用Runtime.exec()以及JavaWorld StreamGobbler文章中的增强功能。它90%的时间在Windows和Unix上工作。另外10%的时间我需要扩展类,然后将/bin/sh的cmd.exe放在命令前面。有时,我还不得不在使用一个包含命令和参数的字符串来将命令和参数拆分为字符串[]数组之间进行切换 我最新的一个错误/异常是“java

我想知道从Java运行命令行可执行文件的最佳替代方案是什么。这些命令的目标平台是Windows 7(+)和Unix/Linux

我有一个类当前使用Runtime.exec()以及JavaWorld StreamGobbler文章中的增强功能。它90%的时间在Windows和Unix上工作。另外10%的时间我需要扩展类,然后将/bin/sh的cmd.exe放在命令前面。有时,我还不得不在使用一个包含命令和参数的字符串来将命令和参数拆分为字符串[]数组之间进行切换

我最新的一个错误/异常是“java.lang.IllegalArgumentException:可执行文件名包含嵌入的引号,拆分参数。”我当前的Runtime.exec()类在作为java应用程序运行的Eclipse中运行良好,但一旦我构建它并从实际命令提示符运行,它就会因上述异常而失败

现在我读到的是,我们应该使用ProcessBuilder为操作系统平台执行命令行可执行文件

我的问题是,最好的选择是什么?Runtime.exec()、ProcessBuilder或其他选项?是否有一个选项同时服务于Windows和Unix/Linux?如果不是,那么哪一个最适合Windows?哪一种最适合Unix/Linux


tia,adym

不确定如何给予波西米亚人信任,但我使用了ProcessBuilder…解决方案位于:


ProcessBuilder
的创建是为了解决运行时的困难。使用
ProcessBuilder