2

我想使用 Nix 安装 OpenJDK 8 或 Oracle JDK 8 以及 Scala。

我从直接安装 Oracle JDK 开始。然后我通过 Nix 通过运行nix-env -i scala. 这样就完成了。

但是,运行scalac失败:

% scala
Exception in thread "main" java.lang.UnsupportedClassVersionError: scala/tools/nsc/MainGenericRunner : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1070)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:414)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我确实设置了 JAVA_HOME:

% echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

重申一下,我想通过 Nix 安装 Scala。我喜欢学习一种或多种方法来做到这一点。一些注意事项:

  • 如果需要,我很高兴了解有关 Nix 软件包如何工作的更多信息。
  • 关于如何在 macOS 上通过 Nix 安装 JDK,我还没有得到清晰、权威的解释。这似乎是故事的关键部分。
4

1 回答 1

3

首先,我用nix-env --uninstall scala.

然后我更新了我~/.nixpkgs/config.nix的包括:

{
  packageOverrides = pkgs: {
    scala = pkgs.scala.override { 
      jre = pkgs.jre8;
    };
  };
}

然后我重新安装了 scala nix-env -i scala。快!

更新 1:更改jre = pkgs.openjdk8jre = pkgs.jre8.

更新 2:我在https://github.com/NixOS/nixpkgs/issues/22439向 nixpkgs 提交了一个问题

于 2017-02-04T05:34:26.037 回答