# This module provides JAVA_HOME, with a different way to install java locally. # This module is modified from the NixOS module `programs.java` { config, lib, pkgs, ... }: with lib; let cfg = config.programs.java; in { meta.maintainers = with maintainers; [ ShamrockLee ]; options = { programs.java = { enable = mkEnableOption "" // { description = '' Install the Java development kit and set the {env}`JAVA_HOME` variable. ''; }; package = mkOption { type = types.package; default = pkgs.jdk; defaultText = "pkgs.jdk"; description = '' Java package to install. Typical values are `pkgs.jdk` or `pkgs.jre`. ''; }; }; }; config = mkIf cfg.enable { home.packages = [ cfg.package ]; # some instances of `jdk-linux-base.nix` pass through `result` without turning it onto a path-string. # while I suspect this is incorrect, the documentation is unclear. home.sessionVariables.JAVA_HOME = "${cfg.package.home}"; }; }