Вопрос или проблема
Каждый раз, когда я пытаюсь выполнить любую команду apt
на своем Mac, я получаю
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home/bin/apt" (-1)
ошибку.
Мой .bash_profile
выглядит следующим образом:
Export JAVA_HOME=/Library/Java/Home
# Настройка PATH для Python 3.7
# Оригинальная версия сохранена в .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH
Попробуйте установить JAVA_HOME
в:
/Library/Java/JavaVirtualMachines
Если это не помогает, попробуйте установить JAVA_HOME в вывод этой команды:
/usr/libexec/java_home
Инструмент apt, очевидно, был удален, начиная с Java 8. См. дополнительное объяснение на https://stackoverflow.com/questions/61847716/unable-to-locate-an-executable-at-library-java-javavirtualmachines
Ответ или решение
Ошибка, связанная с невозможностью найти исполняемый файл в пути "/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home/bin/apt" (-1)", является распространенной среди пользователей, недавно обновившихся или настраивающих Java на своих системах macOS. Эта ошибка часто возникает из-за некорректной настройки переменной среды JAVA_HOME, а также ввиду изменений в инструментарии Java, начиная с версии Java 8. Ваша проблема начинается с попытки выполнить команду apt на вашем Mac, что приводит к вышеупомянутой ошибке.
Теория
Переменная среды JAVA_HOME в операционной системе используется для указания пути к установленной Java Development Kit (JDK). Правильная настройка этой переменной необходима для того, чтобы системы или приложения могли находить необходимые компоненты Java. В вашем случае, она, по всей видимости, установлена неправильно или указывает на устаревшую версию JDK, которая может больше не содержать утилиту apt.
Также стоит учесть, что начиная с Java 8 утилита apt
была удалена и заменена другими инструментами, такими как аннотации, предлагаемые инструментами компилятора. Следовательно, даже если бы существовало правильное указание на более старую утилиту apt
, это не является современной практикой в разработке с использованием Java.
Пример
Вы упомянули ваш текущий .bash_profile
, содержащий строку:
Export JAVA_HOME=/Library/Java/Home
Этот путь может быть некорректным или устаревшим. Вместо этого следует использовать более безопасный механизм, предлагаемый macOS, — команду /usr/libexec/java_home
. Она автоматически указывает на последнюю установленную версию JDK. Таким образом, ваш .bash_profile
может быть изменен следующим образом:
export JAVA_HOME=$(/usr/libexec/java_home)
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH
Применение
Теперь давайте подробно разберем шаги, которые вы можете предпринять для решения вашей проблемы:
-
Проверьте текущую установку Java:
- Откройте терминал и введите команду
java -version
, чтобы убедиться, что Java установлена корректно и определить, какая версия активна.
- Откройте терминал и введите команду
-
Используйте /usr/libexec/java_home:
- Измените ваш
.bash_profile
, как предложено выше, чтобы убедиться, что система всегда находит актуальную версию JDK.
- Измените ваш
-
Обновите Java при необходимости:
- Если у вас установлена старая версия Java, рассмотрите возможность обновления до более свежей версии, которая соответствует современным требованиям и не вызывает подобных проблем. Это можно сделать через официальный сайт Oracle или OpenJDK для более свободного выбора.
-
Проверьте PATH:
- Убедитесь, что путь к bin директории Java включен в переменную PATH, но это уже может не быть необходимым, если вы правильно установили JAVA_HOME.
-
Удалите или игнорируйте использование устаревших инструментов:
- Поскольку утилита
apt
была удалена из комплекта JDK, есть смысл пересмотреть необходимость ее использования и искать современные эквиваленты или альтернативные подходы в зависимости от ваших задач.
- Поскольку утилита
Изменив свои настройки согласно вышеуказанным рекомендациям, вы сможете устранить ошибку и обеспечить стабильную работу Java на вашей системе. Кроме того, учитывать такие изменения в инструменте, как удаление apt
, поможет избежать будущих проблем при обновлении до новых версий JDK. Эта информация должна обеспечить вам наиболее актуальный подход к управлению и настройке Java среды на macOS.