Reputation: 11637
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
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