Gradle - недавно созданный процесс-демон имеет другой контекст, чем ожидалось
Я установил OpenJDK через Nix в Ubuntu (Linux uplink 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
).
gorre@uplink:~$ java -version
openjdk version "1.8.0_172"
OpenJDK Runtime Environment (build 1.8.0_172-02)
OpenJDK 64-Bit Server VM (build 25.172-b02, mixed mode)
gorre@uplink:~$ which java
/home/gorre/.nix-profile/bin/java
gorre@uplink:/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02$ ll
total 24K
dr-xr-xr-x 3 gorre 4.0K Dec 31 1969 share/
dr-xr-xr-x 2 gorre 4.0K Dec 31 1969 nix-support/
dr-xr-xr-x 3 gorre 4.0K Dec 31 1969 lib/
lrwxrwxrwx 1 gorre 80 Dec 31 1969 jre -> /nix/store/n7rh8v269qb1fs6314yq0wg7q8cajw0g-openjdk-8u172b02-jre/lib/openjdk/jre/
dr-xr-xr-x 2 gorre 4.0K Dec 31 1969 include/
lrwxrwxrwx 1 gorre 76 Dec 31 1969 bin -> /nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02/lib/openjdk/bin/
Теперь, когда я пытаюсь построить / запустить проект, который использует Gradle 4.4
в IntelliJ IDEA 2017.3.4 (Ultimate Edition) Build #IU-173.4548.28
Я получаю эту ошибку:
The newly created daemon process has a different context than expected.
It won't be possible to reconnect to this daemon. Context mismatch:
Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02,daemonRegistryDir=/home/gorre/.gradle/daemon,pid=12824,idleTimeout=null,daemonOpts=-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
Actual: DefaultDaemonContext[uid=b813ba02-e4a6-4bfe-91b2-8ed32963f7cc,javaHome=/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02/lib/openjdk,daemonRegistryDir=/home/gorre/.gradle/daemon,pid=14245,idleTimeout=10800000,daemonOpts=-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
Я искал здесь и там, но другие ответы / решения не работают, даже не указав дом Java в gradle.properties
(внутри проекта или в доме моего пользователя):
org.gradle.java.home = /nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02
С другой стороны, если я собираю / запускаю проект на терминале, он работает нормально. Есть какие-нибудь подсказки?
ОБНОВЛЕНИЕ № 1
Это моя конфигурация для Gradle и SDK в IntelliJ IDEA:
2 ответа
Я понял это, хотя это было перед моим носом - я не внимательно прочитал сообщение (я) об ошибке.
В основном, default
Дом Java, установленный Nix, был по адресу: /nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02/lib/openjdk
и тот, который я вручную установил в IntelliJ IDEA, был по адресу: /nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02
(обратите внимание на пропавших без вести ../lib/openjdk
сегмент).
После исправления этого в IntelliJ IDEA все работало нормально. Мне не нужно ничего дополнительного и / или особенного.
Я надеюсь, что это поможет кому-то еще в будущем - или любому другому читателю Nix.
Проверьте настройки Idea для демона Gradle:
Build, Execution, Deployment -> Build Tools -> Gradle.
Есть опция "Gradle JVM". Похоже, что Idea использует Java 9 или другую несовместимую JVM для запуска Gradle. Yoy должен выбрать вашу версию Java из Nix.