HomeAboutArchivesTools & ResourcesSupport me
Hi! 👋 I'm Szymon

I help you become a better software developer.

  • 1.15kFollowers
  • 2.36kSubscribers
  • 110Followers
  • 30.2kReputation

Latest posts from the Learning Java

GraalVM and heap size of the native image - how to set it?
Installing GraalVM EE 1.0.0-RC14 with SDKMAN!
Java 8 type inference in generic methods chain call - what mi...
Divide a list to lists of n size in Java 8
More

Popular categories

  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2

Don't miss anything - join my newsletter

Additional materials and updates for subscribers. No spam guaranteed.
Unsubscribe at any time.

Did you like this article?

Spread the !
  • ☕️
  1. e.printstacktrace.blog
  2. Learning Java

Installing GraalVM EE 1.0.0-RC14 with SDKMAN!

  • March 20, 2019
  • 3 min. read
  • 0 Comments

I love SDKMAN!. It made using multiple different Java distributions in a single operating system much more comfortable. You can install Java across different versions (from 6 to 13.EA) and different vendors (OpenJDK, Oracle, Zulu, Corretto or GraalVM CE to name a few). Switching between those versions is as simple as executing a single sdk use java {version} command and you are ready to use whatever Java you want. However, not all Java versions are available by default, but luckily, SDKMAN! has a simple solution to this problem.

Installing GraalVM EE 1.0.0-RC14

I run some experiments with GraalVM and the only version I can install directly with SDKMAN! is GraalVM Community Edition. However, there is also GraalVM Enterprise Edition which provides some additional features, like improved performance. The main reason GraalVM EE is not available in SDKMAN! is that it is distributed over OTN (Oracle Technology Network) only, so you need to accept OTN license agreement[1] and log in to start the file download. OK, so I downloaded graalvm-ee-1.0.0-rc14-linux-amd64.tar.gz file successfully. What’s next?

Let’s start with the extracting files from the downloaded archive.

$ tar -xvf graalvm-ee-1.0.0-rc14-linux-amd64.tar.gz

After extracting all files, we can install local Java distribution with the following command.

$ sdk install java graal-ee-rc14 /path/to/graalvm-ee-1.0.0-rc14

In the above example, graal-ee-rc14 is a version used by SDKMAN! we want to associate with the Java installation located in /path/to/graalvm-ee-1.0.0-rc14.

SDKMAN! limits version to 15 characters.

When you execute sdk list java command, you will see local GraalVM EE added to SDKMAN’s Java distributions list.

$ sdk list java

================================================================================
Available Java Versions
================================================================================
   + graal-ee-rc14     * 8.0.202-amzn
     13.ea.11-open       8.0.202.j9-adpt
     12.0.0-open         8.0.202.hs-adpt
     11.0.2-sapmchn      8.0.202-zulufx
     11.0.2-zulu     > * 8.0.201-oracle
   * 11.0.2-open         7.0.211-zulu
     11.0.2-amzn         6.0.119-zulu
     11.0.2.j9-adpt    * 1.0.0-rc-14-grl
     11.0.2.hs-adpt    * 1.0.0-rc-13-grl
     11.0.2-zulufx       1.0.0-rc-12-grl
     10.0.2-zulu         1.0.0-rc-11-grl
     10.0.2-open         1.0.0-rc-10-grl
     9.0.7-zulu          1.0.0-rc-9-grl
     9.0.4-open          1.0.0-rc-8-grl
   * 8.0.202-zulu

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

The last thing to do to use GraalVM EE is to switch to a proper Java version, and you are ready to go.

$ sdk use java graal-ee-rc14

Using java version graal-ee-rc14 in this shell.

$ java -version

java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) GraalVM EE 1.0.0-rc14 (build 25.202-b08-jvmci-0.56, mixed mode)
If you don’t know where to keep extracted GraalVM EE sources, there is one workaround that allows keeping all Java distributions together. Instead of extracting graalvm-ee-1.0.0-rc14-linux-amd64.tar.gz at some random location, extract it directly to ~/.sdkman/candidates/java/graal-ee-rc14 directory. After doing so, you don’t have to execute sdk install java …​ command, because your GraalVM EE is already available on sdk list java distributions list.

Conclusion

I hope you have learned something useful from this short blog post. SDKMAN! is a powerful tool that makes developer’s life easier. I use it to manage in a convenient way all my Java, Groovy, or Gradle installations. If you haven’t used it so far, I strongly recommend giving SDKMAN! a chance.


1. https://www.oracle.com/technetwork/licenses/early-adopter-license-2299792.html
  • java
  • graalvm
  • graalvm-ee
  • sdkman

Programmer's Bookshelf

Pragmatic Thinking and Learning - book review

  • March 26, 2019
  • 3 min. read
  • 0 Comments

There are books you read once, and you don’t plan to read them back again any time soon. However, some books are so influential and valuable that when you decide to study them the second time, you realize that it was the right choice, and you could make this call a few years earlier. Today I would like to show you a book that belongs to this second group — no doubts about that.

Groovy Cookbook

GraalVM native image inside docker container - does it make sense?

  • January 19, 2019
  • 3 min. read
  • 0 Comments

We have learned how to create GraalVM native image from standalone Groovy script in the previous...

Learning Java

GraalVM and heap size of the native image - how to set it?

  • April 2, 2019
  • 3 min. read
  • 0 Comments

In this short blog post, I would like to show you how to set a heap size of the application exec...

Jenkins Pipeline Cookbook

Building Java and Maven docker images using parallelized Jenkins Pipeline and SDKMAN!

  • November 11, 2019
  • 3 min. read
  • 0 Comments

In the last article, I have shown you how you can build a docker image for Jenkins Pipeline usin...

Any thoughts or ideas?

Let's talk in the comment's section 💬

Want to put a code sample in the comment? Read the Syntax highlighting guide for more information.
Empty
Latest blog posts
  • Merging JSON files recursively in the command-line
  • Jenkins Declarative Pipeline with the dynamic agent - how to configure it?
  • Groovy Ecosystem Usage Report (2020)
  • How to convert JSON to CSV from the command-line?
  • 5 Common Jenkins Pipeline Mistakes
  • How to merge two maps in Groovy?
  • Building stackoverflow-cli with Java 11, Micronaut, Picocli, and GraalVM
  • How to catch curl response in Jenkins Pipeline?
  • Atomic Habits - book review
  • Parsing JSON in command-line with jq: basic filters and functions (part 1)
Trending videos
Jenkins Pipeline Environment Variables explained | #jenkinspipeline

In today's video, I show you how you can work effectively with environment variables in the Jenkins pipeline as a code. You w...

5 Common Jenkins Pipeline Mistakes 🔥

In this Jenkins Pipeline tutorial video, I reveal five common Jenkins Pipeline mistakes and I explain how those mistakes can ...

Useful links
  • Start here
  • About
  • Archives
  • Resources
  • Privacy Policy
  • Merchandise
  • My Kit
  • RSS
  • Support the blog
Popular categories
  • Groovy Cookbook28
  • Jenkins Pipeline Cookbook9
  • Programmer's Bookshelf6
  • Micronaut Cookbook4
  • Ratpack Cookbook4
  • Learning Java4
  • jq cookbook3
  • How to3
  • Blog Reports2
Popular tags
affiliate async benchmark blogging book career cicd continuous-integration curl devops docker git github graalvm gradle grails groovy haskell hexo java java-8 jenkins jenkins-pipeline jenkinsfile jmh jq json junit learning maven metaprogramming micronaut native-image non-blocking progress ratpack reactive-programming reading recursion review rxjava sdkman session split spock stackoverflow string tail-call tail-recursion unit-test
  • Designed by @wololock
  • Created with Hexo
  • Hosted on GitHub
  • Deployed with Circle CI
  • License CC BY-NC-SA 4.0