Sam YC
Sam YC

Reputation: 11637

GraalVM native image (Substrate VM - Darwin) with Java SE compatibility

SubstrateVM allow to compile JAVA application into macOS (Darwin) native executable. I can't find any place documenting that what kind of Java (SE) packages which SubstrateVM has implemented. That is the biggest concern I have when I am going to decide what kind of Java Libraries I can use when I want to compile my application into macOS (iOS) native executable, because some of the open source/third party Java Libraries might be using certain Java packages (sun or Java Swing) which might not be found in SubtracteVM. I used to use similar AOT like robovm, I know there are a lot of Java packages are not implemented in there.

So far the useful limitation I can find is this one. But it still doesn't mention which part of Java SE that it is (or not) implemented with. Can anyone give a pointer where can I find those information?

Upvotes: 1

Views: 301

Answers (1)

Christian Wirth
Christian Wirth

Reputation: 296

I think what you are looking for is the LIMITATIONS.md file of SubstrateVM. This lists all the features of Java that SubstrateVM does not support or needs additional configuration for. Most prominently, this includes Dynamic Class Loading, Reflection, and JNI (all three can be worked around by additional configuration, typically) or Serialization and Security Managers.

Best, Christian

Upvotes: 2

Related Questions