it-swarm.com.ru

Gradle не находит tools.jar

Я использую javadoc doclets с Gradle, поэтому мне нужно использовать пакет tools.jar, который находится в папке lib из jdk (1.6.0_26 в моем случае).

Дело в том, что gradle не принимает его автоматически, поэтому я добавил пакет с инструментами в папку libs, а затем добавил его в dependencies.gradle. 

Теперь я хочу перенести его прямо из моего JDK-дома в мой dependencies.gradle. Есть способ сделать это? Я попробовал следующее в моей зависимости.

compile files("${System.properties['Java.home']}/lib/tools.jar")

Но он не находит его при компиляции.

130
raspayu

Нашел это. Системное свойство '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 находится на C :\jdk1.6.0_26\lib). Строка компиляции в dependencies.gradle должна быть:

compile files("${System.properties['Java.home']}/../lib/tools.jar")
69
raspayu

У меня была эта проблема, когда я пытался запускать команды через CLI. 

Это была проблема с системой, которая смотрела на папку JRE, т. Е. D:\Program Files\Java\jre8\bin. Если мы посмотрим туда, там нет Tools.jar, отсюда и ошибка. 

Вам нужно найти, где находится JDK, в моем случае: D:\Program Files\Java\jdk1.8.0_11, и если вы посмотрите в каталог lib, вы увидите Tools.jar.

Что я сделал, я создал новую переменную среды Java_HOME:  enter image description here

Затем вам нужно отредактировать переменную PATH, включив в нее Java_HOME, т.е. %Java_HOME%/bin; enter image description here

Снова откройте командную строку и запустите. 

115
benscabbia

Я получил ту же ошибку, используя Eclipse, пытаясь выполнить задачу Gradle. Каждый раз, когда я запускаю команду (то есть войну), процесс выдает исключение вроде: 

Не удалось найти tools.jar. Пожалуйста, проверьте, что C:\Program Files\Java\Jre8 "является допустимой установкой JDK.

Я попробовал решение, указанное в этом посте, но никто из них не решил эту проблему. Вот мое решение:

  1. Перейти к представлению «Задача Gradle» 
  2. Щелкните правой кнопкой мыши на задачу, которую вы хотите выполнить
  3. Выберите Open Gradle Run Configuration
  4. На вкладке «Домой Java» выберите локальный репозиторий JDK и нажмите кнопку «ОК».

Беги снова, Наслаждайся! 

65
rattek

Я только что добавил gradle.properties файл со следующим содержанием:

org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
40
bondehagen

Я также боролся за это решение. Нашел лучший способ сделать это с помощью Gradle, как описано здесь . Мы можем получить информацию о JVM/JDK от самого Gradle.

dependencies {
   runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}

Так просто.

17
Mohammed

У меня был похожий случай с использованием Ubuntu . На машине была установлена ​​толькоJRE. Итак, я только что выполнил команду ниже, чтобы установитьJDK.

Sudo apt install openjdk-8-jdk

17
Italo Borssatto

Добавьте это к gradle.properties:

org.gradle.Java.home = C:\Program Files\Java\jdk1.8.0_91

14
azizbekian

Это может быть на два года позже, но я недавно столкнулся с той же проблемой, и это решение, которое я нашел после того, как нашел этот пост :

import javax.tools.ToolProvider

dependencies {
  compile (
    files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
    ...
  }
}

Это должно работать, если Java.home указывает на каталог, который не находится в каталоге JDK, и даже в Mac OS, где у вас будет classes.jar вместо tools.jar.

11
Andrei LED

В CentOS7 пакет разработки установит tools.jar. Файл отсутствует в Java-1.8.0-openjdk

Sudo yum install Java-1.8.0-openjdk-devel

9
Richard Ginsberg

На Windows 10 я сталкиваюсь с той же проблемой, и вот как я исправил проблему;

  1. Доступ Advance System Settings>Environment Variables>System Variables 
  2. Выберите ПУТЬ перезаписать значение по умолчанию C:\ProgramData\Oracle\Java\javapath 
  3. С вашей собственной установкой jdk это Java_HOME = C:\Program Files\Java\jdk1.8.0_162
7
Dun0523

В моей системе (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

Это подходит для меня)!

4
sidn

Linux

Откройте /etc/environment в любом текстовом редакторе, например nano или gedit, и добавьте следующую строку:

Java_HOME="/usr/lib/jvm/open-jdk"

Windows  

  1. Запустите апплет Панели управления системой (Пуск - Настройки - Управление Панель - Система). 
  2. Выберите вкладку «Дополнительно». 
  3. Нажмите кнопку Environment Variables. 
  4. В разделе «Системные переменные» нажмите кнопку «Добавить» и пройдите следующие строки:

    в имени переменной: Java_HOME

    в значении переменной: C:\Program Files\Java\jdk1.x.x_xxx 

    где x.x_xxx jdk версия, вы можете получить вашу версию jdk отсюда C:\Program Files\Java

  5. В разделе «Системные переменные» выберите «Путь», затем нажмите «Редактировать», затем нажмите кнопку «Создать» и пройдите следующую строку:

    %Java_HOME%/bin;

3
Mortada Jafar

В моем случае (Windows 10) после обновления Java я потерял свои переменные среды, поэтому я исправил добавленные переменные снова, основываясь на следующих шагах https://confluence.atlassian.com/doc/setting-the-Java_home-variable -in-windows-8895.html

2
Ciro Mine

С 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.

2
WesternGun

Как и другие ответы, я устанавливаю org.gradle.Java.home свойство в gradle.properties file. Но путь с\разделителями не работал (сборка на windows 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, это также сработало:

  • В Window> Preferences> Gradle> Arguments укажите JRE Workspace и укажите свой JDK. 
  • В меню «Окно»> «Установки»> «Java»> «InstalledJRE» укажите JDK по умолчанию.
2
Piro

Вы удостоверились, что tools.jar сделал это на пути к классам компиляции? Возможно путь неверный.

task debug << {
    configurations.compile.each { println it }
}
1
Peter Niederwieser

Добавление пути JDK через вкладку Java_HOME в «Open Gradle Run Configuration» решит проблему.

1
Haseena B

Если вы используете терминал для сборки и у вас есть эта ошибка, вы можете указать на jdk в комплекте с Android studio в вашем файле gradle.properties:

org.gradle.Java.home=/usr/local/Android-studio/jre
1
Wiktor Wardzichowski

Это сработало для меня:

Я получаю сообщение 

Не удалось выполнить задачу ': app: compileDebugJavaWithJavac'.

Не удалось найти tools.jar. Пожалуйста, проверьте, что C:\Program Files\Java\jre1.8.0_121 содержит правильную установку JDK.

  • В Android Studio проверьте местоположение вашего SDK.
  • Файл, структура проекта, местоположение SDK, местоположение JDK.
  • Пример: C:\Android-студия\Android-студия\jre
  • Скопируйте файл tools.jar в папку C:\Android-studio\Android-studio\jre\lib в папку C:\Program Files\Java\jre1.8.0_121\lib.
  • Повторите попытку.
1
live-love

Я испробовал большинство лучших вариантов, но, похоже, у меня что-то не так с настройкой среды, поэтому они не помогли. То, что решило проблему для меня, было переустановить jdk1.8.0_201 и jre1.8.0_201, и это решило ошибку для меня. Надеюсь, что это помогает кому-то.

0
Anton Belev

Я решил проблему следующим образом:

0
Veljko P.