Среда выполнения поставляется вместе с приложением, это JDK версии 22.
Когда приложение пытается выполнить внешнюю команду с помощью ProcessBuilder, я получаю следующую ошибку:
Код: Выделить всё
java.io.IOException: Cannot run program "ls": error=0, Failed to exec spawn helper: pid: 16512, signal: 11
Однако, когда я проверяю разрешения этого файла, они :
Код: Выделить всё
-rwxr-xr-x 1 root wheel 71664 Jul 25 14:06 jspawnhelper
Я знаю, что в некоторых случаях эту проблему можно пропустить, проверив путь Java выполняет внешнюю команду, устанавливая параметр:
Код: Выделить всё
-Djdk.lang.Process.launchMechanism=vfork
Код: Выделить всё
Exception in thread "main" java.lang.Error: vfork is not a supported process launch mechanism on this platform: MACOS
Есть ли какие-нибудь советы о том, как глубже разобраться в причине сбоя «jspawnhelper»?< /p>
Судя по комментариям, вот фрагмент кода. Как видите, это очень просто (я реализовал это, чтобы проверить, работает это или нет):
Код: Выделить всё
public static boolean testExecProcess() {
try {
ProcessBuilder builder = new ProcessBuilder("ls");
log.info("Test execution of external command [" + command + "]...");
builder.start();
} catch (IOException exc) {
log.info("Got an exception trying to execute the command: " + exc.getMessage());
return false;
}
return true;
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... r-and-jspa
Мобильная версия