Building static native images and native shared libraries
Static native images are statically linked binaries that do not need any additional dependent libraries at runtime. These are very useful when we are building microservice applications as native images so that they can be easily packaged into Docker, without worrying about dependencies. Static images are best for building container-based microservices.
At the time of writing this book, this feature is only available for Linux AMD64 on Java 11. Please refer to https://www.graalvm.org/reference-manual/native-image/StaticImages/ for the latest updates and the process of building static native images.
The Native Image builder also builds shared libraries. Sometimes you may want to create your code as a shared library that is used by some other application. For that, you have to pass the –shared
flag to build a shared library, instead of an executable one.