diff options
-rw-r--r-- | doc/languages-frameworks/java.xml | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/doc/languages-frameworks/java.xml b/doc/languages-frameworks/java.xml index dcf4d17fa57d..1acea6a7547a 100644 --- a/doc/languages-frameworks/java.xml +++ b/doc/languages-frameworks/java.xml @@ -15,13 +15,17 @@ stdenv.mkDerivation { buildPhase = "ant"; } </programlisting> - Note that <varname>jdk</varname> is an alias for the OpenJDK. - </para> + Note that <varname>jdk</varname> is an alias for the OpenJDK (self-built + where available, or pre-built via Zulu). + Platforms with OpenJDK not (yet) in Nixpkgs (<literal>Aarch32</literal>, + <literal>Aarch64</literal>) point to the (unfree) + <literal>oraclejdk</literal>. +</para> <para> JAR files that are intended to be used by other packages should be installed - in <filename>$out/share/java</filename>. The OpenJDK has a stdenv setup hook - that adds any JARs in the <filename>share/java</filename> directories of the + in <filename>$out/share/java</filename>. JDKs have a stdenv setup hook + that add any JARs in the <filename>share/java</filename> directories of the build inputs to the <envar>CLASSPATH</envar> environment variable. For instance, if the package <literal>libfoo</literal> installs a JAR named <filename>foo.jar</filename> in its <filename>share/java</filename> @@ -57,7 +61,18 @@ installPhase = <literal>${jre}/bin/java</literal> instead of <literal>${jdk}/bin/java</literal>, you prevent your package from depending on the JDK at runtime. - </para> +</para> + +<para> + Note all JDKs passthru <literal>home</literal>, so if your application + requires environment variables like <envar>JAVA_HOME</envar> being set, that + can be done in a generic fashion with the <literal>--set</literal> argument + of <literal>makeWrapper</literal>: + +<programlisting> + --set JAVA_HOME ${jdk.home} +</programlisting> +</para> <para> It is possible to use a different Java compiler than <command>javac</command> |