Я пытаюсь выполнить программу (преобразуйте из ImageMagick, чтобы быть конкретными), чья родительская папка существует на пути. Следовательно, когда я работаю convert
из командной строки это выполняет команду. Следующее, однако, сбои:
String command = "convert"
CommandLine commandLine = CommandLine.parse(command);
commandLine.addArgument(...)
...
int exitValue = executor.execute(commandLine);
Если я указываю полный путь исполняемого файла преобразования (C:\Program files\...
) затем этот код работы. Если я не делаю этого, я бросил исключение со значением выхода 4
.
Как я заставляю должностное лицо свободного городского населения распознавать системный путь?
Раньше я сталкивался с подобными проблемами, когда системный набор PATH не соответствует тому, что видит процесс Java. Чтобы отладить это, вы можете распечатать то, что java-процесс видит как переменную path env, используя:
EnvironmentUtils.getProcEnvironment();
Что даст вам карту, и вы можете посмотреть, видит ли Java переменную path. Если его нет, следующим шагом будет выяснить, почему вы его не видите.
Если он там есть, я бы попробовал запустить вашу команду excutor.execute следующим образом:
int exitValue = executor.execute(commandLine, EnvironmentUtils.getProcEnvironment());