summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-08-17 16:09:19 +0100
committerGitHub <noreply@github.com>2018-08-17 16:09:19 +0100
commitc8a8f49dbc50b34b082a9918f776ae1ad58cc84b (patch)
treef34204166cd10010e299993a0246ef42d95d64ec
parent5162ee0aba1debadc0a0b4fd6a5f6fa96eb8eff8 (diff)
parente84e2fb4342c9db9c38d3e22913385d576b84efe (diff)
downloadnixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar.gz
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar.bz2
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar.lz
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar.xz
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.tar.zst
nixlib-c8a8f49dbc50b34b082a9918f776ae1ad58cc84b.zip
Merge pull request #45271 from flokli/java-docs
docs: properly document what jdk really points to, explain home passthru
-rw-r--r--doc/languages-frameworks/java.xml25
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>