Hi,
I would like to experiment with clojure
and its build tool leiningen
with a modern jdk; the default jdk implementation is currently java 8 and I’m not able to switch to another jdk implementation inside a nix-shell.
I’m using the following default.nix
let
pkgs = import <nixpkgs> {};
newPkgs = pkgs // {jdk = pkgs.adoptopenjdk-jre-openj9-bin-11;};
in
with newPkgs;
stdenv.mkDerivation {
name = "clojure";
nativeBuildInputs = [
jdk
lumo
leiningen
clojure
];
buildInputs = [
openssl
];
}
when I’m running nix-shell
it is using the selected jdk
$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.14.0, JRE 11 Linux amd64-64-Bit Compressed References 20190417_202 (JIT enabled, AOT enabled)
OpenJ9 - bad1d4d06
OMR - 4a4278e6
JCL - 5cc996a803 based on jdk-11.0.3+7)
but leiningen
is still running with java 8
$ lein -version
Leiningen 2.9.1 on Java 1.8.0_212 OpenJDK 64-Bit Server VM
as it is set inside the wrapper script
$ cat `which lein`
#! /nix/store/cinw572b38aln37glr0zb8lxwrgaffl4-bash-4.4-p23/bin/bash -e
export PATH='/nix/store/lhnmfhvw0zlhrd56gp13h2ajbmg51cjh-rlwrap-0.43/bin:/nix/store/d9s1kq1bnwqgxwcvv4zrc36ysnxg8gv7-coreutils-8.30/bin'${PATH:+':'}$PATH
export LEIN_GPG='/nix/store/mqynspckwdp0ymalay32wb7pa7x3hpax-gnupg1compat-2.2.13/bin/gpg'
export JAVA_CMD='/nix/store/gp1avksany5bilwm4vj6nz0vv8cc7wx5-openjdk-8u212-ga/bin/java'
exec -a "$0" "/nix/store/20rpcd8pc7krpfn9ca7p5rgmiwbmgn7r-leiningen-2.9.1/bin/.lein-wrapped" "${extraFlagsArray[@]}" "$@"
How can I change the default jdk to a different version and have all build tools use the new version?
Thanks