at 23.05-pre 1.3 kB view raw
1# This module provides JAVA_HOME, with a different way to install java 2# system-wide. 3 4{ config, lib, pkgs, ... }: 5 6with lib; 7 8let 9 cfg = config.programs.java; 10in 11 12{ 13 14 options = { 15 16 programs.java = { 17 18 enable = mkEnableOption (lib.mdDoc "java") // { 19 description = lib.mdDoc '' 20 Install and setup the Java development kit. 21 22 ::: {.note} 23 This adds JAVA_HOME to the global environment, by sourcing the 24 jdk's setup-hook on shell init. It is equivalent to starting a shell 25 through 'nix-shell -p jdk', or roughly the following system-wide 26 configuration: 27 28 environment.variables.JAVA_HOME = ''${pkgs.jdk.home}/lib/openjdk; 29 environment.systemPackages = [ pkgs.jdk ]; 30 ::: 31 ''; 32 }; 33 34 package = mkOption { 35 default = pkgs.jdk; 36 defaultText = literalExpression "pkgs.jdk"; 37 description = lib.mdDoc '' 38 Java package to install. Typical values are pkgs.jdk or pkgs.jre. 39 ''; 40 type = types.package; 41 }; 42 43 }; 44 45 }; 46 47 config = mkIf cfg.enable { 48 49 environment.systemPackages = [ cfg.package ]; 50 51 environment.shellInit = '' 52 test -e ${cfg.package}/nix-support/setup-hook && source ${cfg.package}/nix-support/setup-hook 53 ''; 54 55 }; 56 57}