{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiba3ouppdwqtpnj2qhqm4o34cgloc3in6akdskzyoebo6wx3wyhly",
"uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mnhfk3lowx62"
},
"path": "/t/jme-3-10-0-beta1/49603?page=2#post_25",
"publishedAt": "2026-06-04T08:48:16.000Z",
"site": "https://hub.jmonkeyengine.org",
"textContent": "GraalVM is fully supported, as long as you configure reflection metadata properly.\nThe good news is that the engine comes with a gradle plugin that does that automatically for jme classes, your app should have a build.gradle with this\n\n\n plugins {\n id 'application'\n id 'org.graalvm.buildtools.native' version '1.1.0'\n id 'org.jmonkeyengine.nativeimage'\n }\n\n application {\n mainClass = 'com.example.MyGame'\n }\n\n graalvmNative {\n binaries {\n named('main') {\n imageName = 'my-game'\n mainClass = 'com.example.MyGame'\n\n project.ext.jmeApplyDefaultNativeImageResourceSettings(delegate)\n }\n }\n }\n\n\nand if you use reflection directly in your app, you can add additional classes and annotation by specifying\n\n\n ext.jmeNativeImageAdditionalTargetTypes = [\n 'com.example.classAccessedWithReflection1',\n 'com.example.classAccessedWithReflection2',\n 'com.example.classAccessedWithReflection3'\n ]\n\n ext.jmeNativeImageAdditionalTargetAnnotations = [\n 'com.example.AnnotationAccessedWithReflection'\n ]\n\n\nbefore graalvmNative.\n\nOr you can use the usual graalvm tracing agent and make it autogenerate the metadata.",
"title": "jME 3.10.0-beta1"
}