DEV Community

Faris Durrani
Faris Durrani

Posted on

A simple Java script to verify you're using Java 17+

Looking at Oracle's Java Downloads page, we see the following downloadable LTS versions of Java:

  • Java 8
  • Java 11
  • Java 17
  • Java 21

And while you can just run java -version in the Terminal to see the current Java version, sometimes you just want a bit more proof that the script is using a specific version of Java.

To do that, we try to run scripts that only work with specific versions of Java since each version brings with them some new features. See A categorized list of all Java and JVM features since JDK 8 to 21 for examples of added features.

For example, we can run the following script to test whether Text Blocks is included in the local Java version, which was only introduced in JDK 15+.

// dummy.java
public class dummy {
    public static void main(String[] args) {
        System.out.println("""
            Hello, World!
            Hello2
                """);
    }
}
Enter fullscreen mode Exit fullscreen mode

Running javac dummy.java && java dummy should print out the multiline string if you installed JDK 15 and above, and error out if you have Java 14 and below.

This example can be extended by testing other features that only work with specific versions of Java (true for other languages as well).

References

  1. StackOverflow: Does Java have support for multiline strings?
  2. A categorized list of all Java and JVM features since JDK 8 to 21

Safe harbor statement

The information provided on this channel/article/story is solely intended for informational purposes and cannot be used as a part of any contractual agreement. The content does not guarantee the delivery of any material, code, or functionality, and should not be the sole basis for making purchasing decisions. The postings on this site are my own and do not necessarily reflect the views or work of Oracle or Mythics, LLC.

This work is licensed under a Creative Commons Attribution 4.0 International License.

Top comments (0)