Gentoo und OpenJDK 11

OpenJDK 11 für den user installieren

Kommentieren Mar 04 2020 .txt, .json, .md

Im aktuellen dev-lang/openjdk ebuild ist folgendes hinterlegt:

pkg_postinst() {
   java-vm-2_pkg_postinst

   if use gentoo-vm ; then
      ewarn "WARNING! You have enabled the gentoo-vm USE flag, making this JDK"
      ewarn "recognised by the system. This will almost certainly break"
      ewarn "many java ebuilds as they are not ready for openjdk-11"
   else
      ewarn "The experimental gentoo-vm USE flag has not been enabled so this JDK"
      ewarn "will not be recognised by the system. For example, simply calling"
      ewarn "\"java\" will launch a different JVM. This is necessary until Gentoo"
      ewarn "fully supports Java ${SLOT}. This JDK must therefore be invoked using its"
      ewarn "absolute location under ${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}."
   fi
}

Wenn man nun versucht dies zu installieren wird man merken das es keine JVM gibt die man verwenden kann. Sollte man dies doch benötigen gibt es einen Weg dies nur für den User aber nicht für das System zu aktivieren.

/etc/portage/package.use/openjdk

dev-java/openjdk gentoo-vm -alsa -cups
dev-java/openjdk-bin gentoo-vm -alsa -cups
dev-java/openjdk-jre-bin gentoo-vm -alsa -cups

/etc/portage/profile/package.use.mask

dev-java/openjdk -gentoo-vm
dev-java/openjdk-bin -gentoo-vm
dev-java/openjdk-jre-bin -gentoo-vm

Als user die JVM setzen:

$ eselect java-vm list
[1]   icedtea-bin-8  system-vm
[2]   openjdk-bin-11
$ eselect java-vm set user 2

Danach sollte es so aussehen:

[1]   icedtea-bin-8  system-vm
[2]   openjdk-bin-11  user-vm

Somit verwendet das System Java 8 und als User Java 11