Java: Difference between revisions
imported>Nornagon Add more information about the various flavors of Java |
imported>Nornagon Add instructions for installing Oracle JDK system-wide. |
||
Line 31: | Line 31: | ||
}; | }; | ||
}; | }; | ||
} | |||
</syntaxhighlight> | |||
To install the Oracle JRE system-wide, you need to explicitly accept the license in addition to allowing unfree modules: | |||
<syntaxhighlight lang="nix"> | |||
# /etc/nixos/configuration.nix | |||
{ | |||
nixpkgs.config = { | |||
allowUnfree = true; | |||
oraclejdk.accept_license = true; | |||
}; | |||
environment.systemPackages = with pkgs; [ | |||
oraclejre8 | |||
]; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 16:50, 13 October 2019
This article is about Java, the programming language.
JDK options
Your default choice should probably be to install jdk11
, which is an alias for openjdk11
. If you're in a server environment, go for jdk11_headless
. Java 11 is the currently-maintained LTS version of OpenJDK as of Oct 2019.
As you might expect, though, many flavors of Java are available in NixOS.
- OpenJDK, by far the most popular non-Oracle JVM implementation
openjdk8[_headless]
for a legacy Java 8 VM required by some older appsopenjdk11[_headless]
, the currently-supported LTS version of OpenJDKopenjdk12[_headless]
, the current version of OpenJDK
- AdoptOpenJDK, prebuilt binaries for OpenJDK
adoptopenjdk-bin
points to the latest version of AdoptOpenJDK, which is version 11 at the time of writing.adoptopenjdk-jre-bin
is available if you want to avoid downloading the compiler and only require the runtime environment.
- JetBrains JDK (
jetbrains.jdk
), a fork of OpenJDK with modifications made by JetBrains - Oracle's JDK (
oraclejdk
), only version 8 is available.
Using Oracle JDK instead of Open JDK
Almost all Java packages in nixpkgs use Open JDK in form of a jre dependency. If you use Oracle JDK and also want other applications to use it, you can simply tweak your .nixpkgs/config.nix
so that your desired application uses Oracles JDK or JRE.
Example with UMLet with JRE
{
allowUnfree = true;
packageOverrides = pkgs: rec {
umlet = pkgs.umlet.override {
jre = pkgs.oraclejre8;
};
};
}
To install the Oracle JRE system-wide, you need to explicitly accept the license in addition to allowing unfree modules:
# /etc/nixos/configuration.nix
{
nixpkgs.config = {
allowUnfree = true;
oraclejdk.accept_license = true;
};
environment.systemPackages = with pkgs; [
oraclejre8
];
}
Better font rendering
By default java does not enable antialiasing for font rendering. By exporting environment variables, this can be fixed:
$ export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'
More options can be found in the archlinux wiki