Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [temurin-dev] .jinfo file specifications

In the context of .jinfo files (used by the update-java-alternatives tool in Debian-based systems), the prefixes like hl, jdk, and jdkhl indicate which types of Java installations the command applies to. Here’s what each of them means:

hl - “headless”

  • Applies to JREs or headless Java environments, i.e., installations without GUI support.

  • These are typically runtime-only tools that do not require a full JDK or graphical components.

  • Examples: java, jfr, keytool, rmiregistry, jrunscript.

jdk “JDK-only”

  • Applies only to full JDK environments, i.e., not JREs or headless JREs.

  • These tools are typically developer-specific tools that wouldn’t be included in a lightweight or runtime-only setup.

  • Example: jconsole (needs GUI support and is not in headless environments).

jdkhl “JDK + headless”

  • Applies to both JDKs and headless environments.

  • These are tools that require development tools (from JDK) but do not require GUI components, so they work in both JDK and headless setups.

  • Examples: javac, javadoc, jlink, jmod, jshell, jmap, etc.


Summary Table

Prefix

Stands For

Used in…

GUI Required?

Developer Tools?

hl

Headless

JRE/Headless JDK

❌ No

❌ No

jdk

JDK-only

Full JDK w/ GUI

✅ Yes

✅ Yes

jdkhl

JDK Headless

JDK & JDK Headless

❌ No

✅ Yes



This tagging helps tools like update-java-alternatives or scripts that manage multiple JVMs decide which binaries to expose based on the system or package type (e.g., headless server vs. developer desktop).


Cheers,
Martijn


On Sat, 5 Jul 2025 at 02:31, Luca Balsanelli via temurin-dev <temurin-dev@xxxxxxxxxxx> wrote:

Hi,

  I'd like to know exactly what jdkhl and hl and jdk mean in the .jinfo file that is installed. For example, in `.temurin-21-jdk-amd64.jinfo`.

jdkhl jar /usr/lib/jvm/temurin-21-jdk-amd64/bin/jar
jdkhl jarsigner /usr/lib/jvm/temurin-21-jdk-amd64/bin/jarsigner
hl java /usr/lib/jvm/temurin-21-jdk-amd64/bin/java
jdkhl javac /usr/lib/jvm/temurin-21-jdk-amd64/bin/javac
jdkhl javadoc /usr/lib/jvm/temurin-21-jdk-amd64/bin/javadoc
jdkhl javap /usr/lib/jvm/temurin-21-jdk-amd64/bin/javap
jdkhl jcmd /usr/lib/jvm/temurin-21-jdk-amd64/bin/jcmd
jdk jconsole /usr/lib/jvm/temurin-21-jdk-amd64/bin/jconsole
jdkhl jdb /usr/lib/jvm/temurin-21-jdk-amd64/bin/jdb
jdkhl jdeprscan /usr/lib/jvm/temurin-21-jdk-amd64/bin/jdeprscan
jdkhl jdeps /usr/lib/jvm/temurin-21-jdk-amd64/bin/jdeps
hl jfr /usr/lib/jvm/temurin-21-jdk-amd64/bin/jfr
jdkhl jhsdb /usr/lib/jvm/temurin-21-jdk-amd64/bin/jhsdb
jdkhl jimage /usr/lib/jvm/temurin-21-jdk-amd64/bin/jimage
jdkhl jinfo /usr/lib/jvm/temurin-21-jdk-amd64/bin/jinfo
jdkhl jlink /usr/lib/jvm/temurin-21-jdk-amd64/bin/jlink
jdkhl jmap /usr/lib/jvm/temurin-21-jdk-amd64/bin/jmap
jdkhl jmod /usr/lib/jvm/temurin-21-jdk-amd64/bin/jmod
jdkhl jpackage /usr/lib/jvm/temurin-21-jdk-amd64/bin/jpackage
jdkhl jps /usr/lib/jvm/temurin-21-jdk-amd64/bin/jps
hl jrunscript /usr/lib/jvm/temurin-21-jdk-amd64/bin/jrunscript
jdkhl jshell /usr/lib/jvm/temurin-21-jdk-amd64/bin/jshell
jdkhl jstack /usr/lib/jvm/temurin-21-jdk-amd64/bin/jstack
jdkhl jstat /usr/lib/jvm/temurin-21-jdk-amd64/bin/jstat
jdkhl jstatd /usr/lib/jvm/temurin-21-jdk-amd64/bin/jstatd
jdkhl jwebserver /usr/lib/jvm/temurin-21-jdk-amd64/bin/jwebserver
hl keytool /usr/lib/jvm/temurin-21-jdk-amd64/bin/keytool
hl rmiregistry /usr/lib/jvm/temurin-21-jdk-amd64/bin/rmiregistry
jdkhl serialver /usr/lib/jvm/temurin-21-jdk-amd64/bin/serialver
hl jexec /usr/lib/jvm/temurin-21-jdk-amd64/lib/jexec
hl jspawnhelper /usr/lib/jvm/temurin-21-jdk-amd64/lib/jspawnhelper

In https://github.com/adoptium/installer I haven't found anything, except jinfo.in which seems a template, but it does not provide any explanation.

Thank you,
Luca
_______________________________________________
temurin-dev mailing list
temurin-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://accounts.eclipse.org

Back to the top