Java in Gentoo

From Elvanör's Technical Wiki
Jump to navigation Jump to search

Installing a JDK

  • For some applications, you may need the jce USE flag set for the sun-jdk (Java Cryptography Extension). Note that emerging sun-jce-bin is not enough.

Libraries (JAR) locations

  • Java packages are VERY often SLOTed.
  • If a package is SLOTed, the jar go to /usr/share/package-name-SLOT/package-name.jar. Note that in the JAR there should not be any version number. Beware that some old/badly written ebuilds can forget to specify a SLOT, thus, the jar end in /usr/share/package-name/package-name.jar. This can be confusing when using java-config -p which report the location of the JAR (since it may mask the fact that another version of the package exist).

Classpath

  • The java command on Gentoo honors the CLASSPATH variable. So often the best way to specify the classpath is via this variable.
  • Always remember than when using the -jar switch, java ignores both the -cp argument and the CLASSPATH. The classpath is built via the instructions on the Manifest file of your jar. The alternative is to not use jar, thus writing something like:
java -cp "/path/my.jar" net.elvanor.main
  • Sometimes it can be useful to symlink to existing jars in the place where they are expected by a jar manifest.