x80*_*486 5 java intellij-idea gradle nixos nixpkgs
我在 Ubuntu 中通过Nix安装了 OpenJDK ( 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/
Run Code Online (Sandbox Code Playgroud)
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]
Run Code Online (Sandbox Code Playgroud)
我到处搜索过,但其他答案/解决方案不起作用,甚至没有指定 Java 主目录gradle.properties(在项目内部或我的用户主目录中):
org.gradle.java.home = /nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我在终端上构建/运行该项目,它就可以正常工作。有什么线索吗?
更新#1
这是我在 IntelliJ IDEA 中对 Gradle 和 SDK 的配置:
检查 Gradle 守护进程的 Idea 设置:
Build, Execution, Deployment -> Build Tools -> Gradle.
Run Code Online (Sandbox Code Playgroud)
有一个选项“Gradle JVM”。看起来 Idea 使用 Java 9 或其他一些不兼容的 JVM 来运行 Gradle。Yoy 应该从 Nix 中选择您的 Java 版本。
我想通了,尽管它就在我的鼻子前面 \xe2\x80\x94 我没有仔细阅读错误消息。
\n\n基本上,defaultNix 设置的 Java 主目录位于:/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02/lib/openjdk而我在 IntelliJ IDEA 中手动设置的 Java 主目录位于:(/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02注意缺少的../lib/openjdk段)。
在 IntelliJ IDEA 中更正该问题后,一切正常。我不需要任何额外的和/或特殊的东西。
\n\n我希望这可以帮助将来的其他人 \xe2\x80\x94 或任何其他快速阅读器Nix \'ers。
\n| 归档时间: |
|
| 查看次数: |
8222 次 |
| 最近记录: |