{
  "$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"
}