Вопрос или проблема
Я пытаюсь написать мод для Minecraft, но это не проблема. Мне нужно извлечь папку с помощью команды gradlew
:
gradlew setupDecompWorkspace
Проблема: каждый раз, когда я пытаюсь выполнить эту команду, возникает ошибка.
Я пытался установить старую версию JDK (8), но мне нужно создать учетную запись. Однако, похоже, что это требуется для работы в какой-то компании (они спрашивают все эти данные, такие как рабочий номер телефона).
Есть ли способ получить версию JDK 8?
(Существует ли учетная запись Oracle для студентов?)
Или как исправить ошибку?
Oracle больше не поддерживает OpenJDK 8. Если вы используете OpenJDK из стандартных репозиториев Ubuntu, отмена лицензии Oracle не имеет значения, так как Ubuntu продолжит поддерживать свои Java-пакеты так же, как и все остальные пакеты в своих репозиториях.
Если вы используете двойную загрузку с Ubuntu 18.04 или устанавливаете Ubuntu 18.04 в виртуальной машине, вы можете установить OpenJDK 8 из терминала с помощью следующей команды:
sudo apt install openjdk-8-jdk
Вы также можете установить NetBeans или Eclipse IDE для разработчиков Java из приложения Ubuntu Software в Ubuntu 18.04.
В моем случае я пытался собрать и получить APK для старого проекта Unity 3D (чтобы я мог играть в игру на своем Android телефоне). Я использовал последнюю версию Android Studio, и все SDK-пакеты, которые смог загрузить через SDK Manager в Android Studio. Пакеты SDK располагались по адресу
C:/Users/Onat/AppData/Local/Android/Sdk
А сообщение об ошибке, которое я получил, было таким же, за исключением версии JDK (Java Development Kit) “jdk-12.0.2”. JDK располагался по адресу
C:\Program Files\Java\jdk-12.0.2
И переменная окружения в Windows была JAVA_HOME : C:\Program Files\Java\jdk-12.0.2
После 3 часов исследований я обнаружил, что Unity не поддерживает JDK 10. Как указано в https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/. Моя рекомендация:
1. Удалите ненужный JDK, если он уже установлен. https://www.java.com/tr/download/help/uninstall_java.xml
2. Перейдите на http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
3. Войдите в Oracle или создайте учетную запись, если вы еще не вошли.
4. Скачайте старую, но функциональную версию JDK 8 для вашей конфигурации компьютера (32 бита/64 бита, Windows/Linux и т. д.)
5. Установите JDK. Запомните путь установки. (https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/)
6. Если вы используете Windows, откройте Переменные окружения и измените путь к Java щелчком правой кнопкой мыши на Компьютер/Этот ПК>Свойства>Дополнительные параметры системы>Переменные окружения>Создать>Имя переменной: JAVA_HOME>значение переменной: [ВАШ ПУТЬ JDK, мой был “C:\Program Files\Java\jdk1.8.0_221”]
7. В Unity 3D нажмите Правка > Параметры > Внешние инструменты и заполните путь к JDK (мой был “C:\Program Files\Java\jdk1.8.0_221”).
8. Также в том же всплывающем окне измените путь SDK. (Получите его из Android Studio > SDK Manager > Android SDK > Расположение Android SDK.)
- Если необходимо, перезагрузите компьютер, чтобы изменения вступили в силу.
Ответ или решение
Проблема с версией Java: "Не удалось определить версию Java из ‘12.0.1’"
При попытке собрать мод для Minecraft с использованием команды gradlew setupDecompWorkspace
, вы столкнулись с ошибкой, связанной с версией Java. Ошибка "Не удалось определить версию Java из ‘12.0.1’" является распространенной проблемой, особенно в контексте работы с инструментами, которые не поддерживают более новые версии JDK, такие как версия 12.
Причины проблемы
-
Несоответствие версии JDK: Многие инструменты, такие как Unity 3D или различные сборщики для Minecraft, могут не поддерживать версии JDK выше 8. Если у вас установлена версия JDK 12, это может вызвать проблемы при сборке вашего проекта.
-
Настройки окружения: Порой, даже после установки правильной версии JDK, неверные пути в переменных окружения могут препятствовать успешной работе системы. Это важно учитывать при настройке окружения.
Решения
-
Удаление существующих установок JDK: Прежде чем устанавливать JDK 8, рекомендуется удалить все предыдущие версии JDK, если они вам не нужны. Это можно сделать через панель управления Windows или с помощью команды удаления на других операционных системах.
Для Windows вы можете воспользоваться следующей ссылкой для получения рекомендаций по удалению: Удаление Java.
-
Скачивание и установка JDK 8: Для получения JDK 8 можно сделать следующее:
- Перейдите на официальную страницу загрузки Oracle.
- Создайте аккаунт Oracle, если у вас его еще нет (это единственный способ получить доступ к загрузке JDK 8).
- Выберите подходящую версию JDK для вашей операционной системы (32 бита или 64 бита) и скачайте установочный файл.
- Установите JDK, запомнив путь установки.
-
Обновление переменных окружения: После установки JDK 8 необходимо обновить переменные системы:
- Откройте свойства системы, перейдите в "Дополнительные параметры системы" и выберите "Переменные среды".
- Создайте новую переменную среды с именем
JAVA_HOME
и укажите путь к вашей установке JDK (например,C:\Program Files\Java\jdk1.8.0_221
). - В разделе "Path" добавьте
;%JAVA_HOME%\bin
в конец списка.
-
Настройки в Unity 3D (если используется): Если вы работаете с Unity 3D, убедитесь, что путь к установленному JDK задан в настройках Unity:
- Перейдите в
Edit > Preferences > External Tools
и укажите путь к JDK.
- Перейдите в
-
Перезапуск системы: В некоторых случая может потребоваться перезагрузка компьютера, чтобы изменения вступили в силу.
Альтернативы
Если вы не хотите создавать аккаунт Oracle для загрузки JDK 8, можно рассмотреть установку OpenJDK 8. На Ubuntu это можно сделать командой:
sudo apt install openjdk-8-jdk
Для Windows можно воспользоваться дистрибутивом AdoptOpenJDK или другой доверенной альтернативой.
Заключение
Проблема с определением версии Java и необходимость использования старой версии JDK может вызвать сложности, но при правильном подходе и установке JDK 8 вы сможете обойти эти препятствия. Следуя предложенным шагам, вы сможете успешно настроить среду для разработки, что позволит вам продолжить создание модификаций для Minecraft или работу с проектами в Unity 3D без дополнительных проблем.