Выполнение неотмеченной командной строки из Java
В настоящее время я использую ProcessBuilder для запуска команд с сервера Java. Этот сервер должен заменить старый сервер Perl, и большая часть нашего унаследованного кода определяет специфичные для платформы командные строки.
Например, на окнах это может сделать:
command -option "hello world"
и на Unix это может сделать:
command -option 'hello world'
Проблема в том, что и ProcessBuilder, и Runtime.exec принимают токенизированные командные строки (например, {"command", "-option", "hello world"} как для Unix, так и для Windows).
Хотя я предпочитаю независимый от платформы способ, в нашей базе кода где-то есть 30 миллионов строк кода на Perl. Без того, чтобы я написал токенизатор для разных платформ (на самом деле это не так уж и сложно, я просто не хочу создавать WTF), есть ли способ, чтобы оболочка в операционной системе токенизировала командную строку?