Gradle не находит tools.jar
Я использую javadoc doclets с gradle, поэтому мне нужно использовать пакет tools.jar, который находится в папке lib из jdk (1.6.0_26 в моем случае).
Дело в том, что gradle не принимает его автоматически, поэтому я добавлял этот пакет инструментов в свою папку libs, а затем добавлял его в dependencies.gradle.
Теперь я хочу перенести его прямо из моего дома JDK в мои зависимости. Есть ли способ сделать это? Я пробовал следующее в моих зависимостях .gradle:
compile files("${System.properties['java.home']}/lib/tools.jar")
Но он не находит его при компиляции.
Ответы
Ответ 1
Нашел. Системное свойство "java.home" не является переменной среды JAVA_HOME. JAVA_HOME указывает на JDK, а java.home указывает на JRE. Подробнее см. эту страницу.
Су... Моя проблема заключалась в том, что моей начальной точкой была папка jre (C:\jdk1.6.0_26\jre), а не папка jdk (C:\jdk1.6.0_26), как я думал (tools.jar is в папке C:\jdk1.6.0_26\lib). Строка компиляции в зависимостях .gradle должна быть:
compile files("${System.properties['java.home']}/../lib/tools.jar")
Ответ 2
У меня была эта проблема, когда я пытался запускать команды через CLI.
Это была проблема с системой, рассматривающей папку JRE, т.е.
D:\Program Files\Java\jre8\bin
. Если мы посмотрим, нет Tools.jar
, следовательно, ошибка.
Вам нужно найти, где JDK
, в моем случае: D:\Program Files\Java\jdk1.8.0_11
, и если вы посмотрите в каталоге lib
, вы увидите Tools.jar
.
Что я сделал, я создал новую переменную среды JAVA_HOME
:
![введите описание изображения здесь]()
И тогда вам нужно изменить свою переменную PATH, чтобы включить JAVA_HOME, т.е. %JAVA_HOME%/bin;
![введите описание изображения здесь]()
Откройте команду командной строки и выполните ее.
Ответ 3
Я получил ту же ошибку, используя Eclipse, пытающуюся выполнить задачу Gradle. Каждый раз, когда я запускаю команду (т.е. Войну), процесс генерирует исключение, например:
Не удалось найти tools.jar. Проверьте, что C:\Program Files\Java\Jre8 "является действующей установкой JDK.
Я попробовал решение, указанное в этом сообщении, но ни одна из них не решила эту проблему. Здесь мое решение:
- Перейдите к представлению Gradle Task >
- Щелкните правой кнопкой мыши по задаче, которую вы хотите выполнить
- Выберите "Открыть" Gradle "Запустить конфигурацию"
- На вкладке "Главная страница Java" выберите локальный репозиторий JDK, затем нажмите "ОК"
Запустите снова, наслаждайтесь!
Ответ 4
Я добавил файл gradle.properties
со следующим содержимым:
org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_45
Ответ 5
У меня был похожий случай с использованием Ubuntu. На машине была установлена только JRE. Итак, я только что выполнил команду ниже, чтобы установить JDK.
sudo apt install openjdk-8-jdk
Ответ 6
Я тоже боролся за это решение. Нашел лучший способ для этого с Gradle, как описано здесь.
Мы можем получить информацию JVM/JDK от самого Gradle.
dependencies {
runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}
Так просто.
Ответ 7
Добавьте это в gradle.properties
:
org.gradle.java.home = C:\Program Files\Java\jdk1.8.0_91
Ответ 8
В CentOS7 пакет разработки установит tools.jar. Файл отсутствует в java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel
Ответ 9
Это может быть уже два года, но я столкнулся с той же проблемой в последнее время, и это решение, с которым я столкнулся после того, как нашел этот пост:
import javax.tools.ToolProvider
dependencies {
compile (
files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
...
}
}
Он должен работать, если java.home указывает на каталог, который не находится в каталоге JDK, и даже на Mac OS, где у вас будет класс .jar вместо tools.jar.
Ответ 10
На Windows 10 я сталкиваюсь с той же проблемой, и вот как я исправил проблему;
- Доступ к
Advance System Settings>Environment Variables>System Variables
- Выберите PATH перезаписать
C:\ProgramData\Oracle\Java\javapath
- С вашей собственной установкой jdk, которая является JAVA_HOME=
C:\Program Files\Java\jdk1.8.0_162
Ответ 11
В моей системе (Win 10, JRE 1.8.0, Android Studio 3.1.2, Gradle 4.1) в каталоге JRE нет tools.jar
(C:\Program Files\Java\jre1.8.0_171
).
Однако я нашел его в C:\Program Files\Android\Android Studio\jre\lib
и попытался установить JAVA_HOME=C:\Program Files\Android\Android Studio\jre
Это подходит для меня)!
Ответ 12
Linux
Откройте /etc/environment
в любом текстовом редакторе, например nano или gedit, и добавьте следующую строку:
JAVA_HOME="/usr/lib/jvm/open-jdk"
Windows
- Запустите апплет System Control Panel (Пуск - Настройки - Управление
Панель - Система).
- Перейдите на вкладку "Дополнительно".
- Щелкните по окружению
Переменная.
-
В разделе "Системные переменные" нажмите кнопку "Добавить", а затем следующие строки:
в имени переменной: JAVA_HOME
в переменном значении: C:\Program Files\Java\jdk1.x.x_xxx
где x.x_xxx
версия jdk вы можете получить здесь версию jdk C:\Program Files\Java
-
В разделе "Системные переменные" выберите "Путь", затем "Редактировать", затем нажмите кнопку "Создать", а затем следующую строку:
%JAVA_HOME%/bin;
Ответ 13
С Centos 7 я обнаружил, что только JDK имеет tools.jar
, а JRE - нет. Я установил Java 8 JRE (yum install java-1.8.0-openjdk
), но не JDK (yum install java-1.8.0-openjdk-devel
).
Установка последней решает проблему. Кроме того, не забудьте установить JAVA_HOME
.
Ответ 14
Как и другие ответы, я устанавливаю свойство org.gradle.java.home в файле gradle.properties. Но путь с \separators не работал (на основе окон 10):
Дом Java, поставляемый через 'org.gradle.java.home', недействителен. Инвалид каталог: C: Program FilesJavajdk1.8.0_65
Итак, вместо
org.gradle.java.home = C:\Program Files\Java\jdk1.8.0_65
Мне пришлось использовать
org.gradle.java.home = C:/Program Files/Java/jdk1.8.0_65
то сборка была успешной
Проблема в том, что проект строится с JRE вместо JDK, и поскольку я создавал его из eclipse, это также сработало:
- В окне > Настройки > Gradle > Аргументы определяют рабочую область JRE и укажите ваш JDK.
- В окне > Предпочтения > Java > Установленные JRE укажу ваш JDK по умолчанию
Ответ 15
В моем случае (Windows 10) после обновления Java я потерял переменные Enviroment, поэтому я исправил добавленные переменные снова, основываясь на следующих шагах https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html
Ответ 16
Это сработало для меня:
Я получаю сообщение
Не удалось выполнить задачу ': app: compileDebugJavaWithJavac'.
Не удалось найти tools.jar. Пожалуйста, проверьте, что C:\Program Files\Java\jre1.8.0_121 содержит правильную установку JDK.
- В Android Studio проверьте местоположение вашего SDK.
- Файл, структура проекта, местоположение SDK, местоположение JDK.
- Пример: C:\android-studio\android-studio\jre
- Скопируйте файл tools.jar в папку C:\android-studio\android-studio\jre\lib в папку C:\Program Files\Java\jre1.8.0_121\lib.
- Повторите попытку.
Ответ 17
Вы убедились, что tools.jar сделал это на пути к компиляции класса? Возможно, путь неправильный.
task debug << {
configurations.compile.each { println it }
}
Ответ 18
Добавление пути JDK через вкладку JAVA_HOME в "Open Gradle Run Configuration" решит проблему.
Ответ 19
Если вы используете терминал для сборки и у вас есть эта ошибка, вы можете указать на jdk в комплекте с android studio в вашем файле gradle.properties
:
org.gradle.java.home=/usr/local/android-studio/jre
Ответ 20
Я пробовал большинство лучших вариантов, но, похоже, у меня что-то не так с настройкой среды, поэтому они не помогли. Что решило проблему для меня, было переустановить jdk1.8.0_201
и jre1.8.0_201
и это решило ошибку для меня. Надеюсь, что это помогает кому-то.
Ответ 21
Я решил проблему следующим образом: