Description
Describe the Issue
Followed the given advice, suspected reachability-metadata.json was not being read. Corrected that error. got another error about jni section, so reran
application with agent, rebuilt jars and mods again with new data, but back now to complaint that makes no sense to me. I figured I would have some trouble
with javafx libraries, but not getting that far.
See error at bottom.
from reachability-metadata.json
{
"type": "org.newfdog.jar.Jarbrowser",
"methods": [
{
"name": "<init>",
"parameterTypes": []
},
{
"name": "main",
"parameterTypes": [
"java.lang.String[]"
]
}
]
},
> native-image --verbose \
-cp /Users/jerry/NetBeansProjects/jarbrowser/src/main/resources/META-INF/native-image \
--enable-sbom \
--pgo-instrument \
-march=native \
--emit build-report \
--module-path /Users/jerry/javafx-jmods-24:/Users/jerry/tools/mods\
:/Users/jerry/javafx-sdk-24/lib\
:/Users/jerry/tools/jars \
--add-modules javafx.graphics,javafx.fxml,javafx.controls,newfdog.jarscan,jarbrowser \
--module jarbrowser/org.newfdog.jar.Jarbrowser -o jarb \
--exact-reachability-metadata \
--enable-native-access=ALL-UNNAMED \
--trace-object-instantiation=org.newfdog.jar.Jarbrowser
jerry@Jerrys-MacBook-Pro jarbrowser % ./native.zsh 2
Apply jar:file:///Users/jerry/jdk-24/Contents/Home/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties
Apply jar:file:///Users/jerry/jdk-24/Contents/Home/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties
Executing [
HOME=/Users/jerry \
LANG=en_US.UTF-8 \
'PATH=/Users/jerry:/Users/jerry/bin:/Users/jerry/tools:/Users/jerry/jdk-24/Contents/Home/bin:/Users/jerry/usr/Toolbox/ant/dist/bin:/Users/jerry/usr/Toolbox/maven/bin:/Users/jerry/usr/Toolbox/gradle/bin:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Applications/VMware Fusion.app/Contents/Public:/Applications/Icons.app/Contents/MacOS:/Users/jerry/.lmstudio/bin' \
PWD=/Users/jerry/NetBeansProjects/jarbrowser \
USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM=true \
/Users/jerry/jdk-24/Contents/Home/bin/java \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
--add-exports=java.base/com.sun.crypto.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.access=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.event=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.loader=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.logger=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.misc=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto \
--add-exports=java.base/jdk.internal.module=org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.org.objectweb.asm=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.perf=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.platform=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.ref=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=java.base/jdk.internal.reflect=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.vm.annotation=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.vm=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.invoke.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.net.www=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.net=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.nio.ch=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=java.base/sun.reflect.annotation=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.factory=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.reflectiveObjects=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.repository=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.scope=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.tree=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.jca=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.ssl=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.x509=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.text.spi=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.calendar=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.cldr=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.locale.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.locale=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.resources=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util=org.graalvm.nativeimage.builder \
--add-exports=java.management/com.sun.jmx.mbeanserver=org.graalvm.nativeimage.builder \
--add-exports=java.management/sun.management=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.stack=jdk.graal.compiler,org.graalvm.nativeimage.builder \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.common=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=jdk.graal.compiler \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=jdk.graal.compiler \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.riscv64=jdk.graal.compiler \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=com.oracle.graal.graal_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.riscv64=com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=com.oracle.graal.graal_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.services=com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.graal.compiler,org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.events=org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal.event=org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal.jfc=com.oracle.svm.svm_enterprise,org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal=com.oracle.svm.svm_enterprise,org.graalvm.nativeimage.builder \
--add-exports=jdk.management/com.sun.management.internal=org.graalvm.nativeimage.builder \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-XX:+UseParallelGC \
-XX:MaxRAMPercentage=35.337702433268234 \
-XX:GCTimeRatio=9 \
-XX:+ExitOnOutOfMemoryError \
-Djava.awt.headless=true \
'-Dorg.graalvm.vendor=Oracle Corporation' \
-Dorg.graalvm.vendorurl=https://www.graalvm.org/ \
'-Dorg.graalvm.vendorversion=Oracle GraalVM 24+36.1' \
-Dorg.graalvm.version=24.2.0 \
-Dcom.oracle.graalvm.isaot=true \
-Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
-Xshare:off \
-Djdk.internal.lambda.disableEagerInitialization=true \
-Djdk.internal.lambda.eagerlyInitialize=false \
-Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
-Djava.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD=-1 \
-Djava.lang.invoke.MethodHandle.PROFILE_GWT=false \
-agentlib:native-image-diagnostics-agent=o=org.newfdog.jar.Jarbrowser \
--add-modules=ALL-DEFAULT \
--enable-native-access=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.foreign,org.graalvm.nativeimage.pointsto,org.graalvm.nativeimage.base,org.graalvm.nativeimage.objectfile,com.oracle.svm.svm_enterprise \
--module-path \
/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/svm.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/native-image-base.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/objectfile.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/svm-enterprise.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/svm-foreign.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/builder/pointsto.jar \
-Dorg.graalvm.nativeimage.module.addmods=javafx.graphics,javafx.fxml,javafx.controls,newfdog.jarscan,jarbrowser,java.rmi,jdk.jdi,java.xml,jdk.xml.dom,java.datatransfer,org.graalvm.truffle.compiler,java.desktop,java.security.sasl,org.graalvm.nativeimage,jdk.zipfs,java.base,jdk.management.agent,org.graalvm.word,java.sql.rowset,jdk.jsobject,jdk.unsupported,jdk.jlink,java.security.jgss,java.compiler,jdk.graal.compiler,jdk.unsupported.desktop,java.sql,org.graalvm.collections,java.logging,java.xml.crypto,java.transaction.xa,jdk.jfr,jdk.internal.vm.ci,jdk.internal.md,java.naming,jdk.internal.ed,java.prefs,java.net.http,jdk.compiler,jdk.internal.opt,jdk.attach,jdk.internal.le,java.management,jdk.jdwp.agent,jdk.internal.jvmstat,java.instrument,jdk.management,java.scripting,jdk.jdeps,java.management.rmi \
--add-modules=java.rmi,jdk.jdi,java.xml,jdk.xml.dom,java.datatransfer,org.graalvm.truffle.compiler,java.desktop,java.security.sasl,org.graalvm.nativeimage,jdk.zipfs,java.base,jdk.management.agent,org.graalvm.word,java.sql.rowset,jdk.jsobject,jdk.unsupported,jdk.jlink,java.security.jgss,java.compiler,jdk.graal.compiler,jdk.unsupported.desktop,java.sql,org.graalvm.collections,java.logging,java.xml.crypto,java.transaction.xa,jdk.jfr,jdk.internal.vm.ci,jdk.internal.md,java.naming,jdk.internal.ed,java.prefs,java.net.http,jdk.compiler,jdk.internal.opt,jdk.attach,jdk.internal.le,java.management,jdk.jdwp.agent,jdk.internal.jvmstat,java.instrument,jdk.management,java.scripting,jdk.jdeps,java.management.rmi \
--module \
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner \
-keepalive \
/var/folders/_7/hfqv49r549j2wv_3c9595x880000gn/T/.native_image16496652719713189457alive \
-imagecp \
/Users/jerry/NetBeansProjects/jarbrowser/src/main/resources/META-INF/native-image \
-imagemp \
/Users/jerry/tools/jars/newfdog.logger.jar:/Users/jerry/javafx-sdk-24/lib/javafx-swt.jar:/Users/jerry/javafx-sdk-24/lib/javafx.web.jar:/Users/jerry/javafx-sdk-24/lib/javafx.graphics.jar:/Users/jerry/javafx-sdk-24/lib/javafx.fxml.jar:/Users/jerry/javafx-sdk-24/lib/javafx.media.jar:/Users/jerry/javafx-sdk-24/lib/jfx.incubator.input.jar:/Users/jerry/javafx-sdk-24/lib/javafx.controls.jar:/Users/jerry/tools/jars/jarbrowser-1.0.0.jar:/Users/jerry/javafx-sdk-24/lib/javafx.swing.jar:/Users/jerry/jdk-24/Contents/Home/lib/svm/library-support.jar:/Users/jerry/javafx-sdk-24/lib/javafx.base.jar:/Users/jerry/tools/jars/newfdog.jarscan.jar:/Users/jerry/javafx-sdk-24/lib/jfx.incubator.richtext.jar \
-H:CLibraryPath=/Users/jerry/jdk-24/Contents/Home/lib/svm/clibraries/darwin-aarch64,/Users/jerry/jdk-24/Contents/Home/lib/svm/clibraries \
-H:Path@driver=/Users/jerry/NetBeansProjects/jarbrowser \
-H:IncludeSBOM@user+api=embed,cyclonedx \
-H:+ProfilingEnabled@user+api \
-H:MicroArchitecture@user+api=native \
-H:Emit@user+api=build-report \
-H:Class@driver=org.newfdog.jar.Jarbrowser \
-H:Module@driver=jarbrowser \
-H:Name@user+api=jarb \
-H:ThrowMissingRegistrationErrors@user+api= \
-H:EnableNativeAccess@user+api=ALL-UNNAMED \
-H:TraceObjectInstantiation@user+api=org.newfdog.jar.Jarbrowser \
-H:ImageBuildID@driver=0aa6351a-d5ff-87e4-68a3-481c4e25e7fa \
'-H:Features@jar:file:///Users/jerry/jdk-24/Contents/Home/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
'-H:Features@jar:file:///Users/jerry/jdk-24/Contents/Home/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature,com.oracle.svm.polyglot.scala.ScalaFeature' \
-H:Color@driver=always \
-H:+BuildOutputProgress@driver \
-H:+BuildOutputLinks@driver
]
====================================================================================================
GraalVM Native Image: Generating 'jarb' (executable)...
====================================================================================================
[1/8] Initializing... (3.2s @ 0.15GB)
Java version: 24+36, vendor version: Oracle GraalVM 24+36.1
Graal compiler: optimization level: 2, target machine: native, PGO: sampling+instrument
C compiler: cc (apple, arm64, 17.0.0)
Garbage collector: Serial GC (max heap size: 80% of RAM)
1 user-specific feature(s):
- com.oracle.svm.thirdparty.gson.GsonFeature
----------------------------------------------------------------------------------------------------
Build resources:
- 15.08GB of memory (31.4% of 48.00GB system memory, determined at start)
- 16 thread(s) (100.0% of 16 available processor(s), determined at start)
Warning: We could not find any version info for the following classes:
javafx.beans.WeakListener
javafx.application.ConditionalFeature
com.sun.javafx.event.BasicEventDispatcher
javafx.collections.ObservableList
javafx.scene.image.Image
javafx.geometry.NodeOrientation
com.sun.javafx.stage.StagePeerListener.StageAccessor
javafx.beans.Observable
javafx.beans.value.ObservableObjectValue
org.newfdog.util.logging.SystemLoggerFinder
javafx.collections.ListChangeBuilder.SingleChange
javafx.beans.binding.BooleanExpression
com.sun.javafx.stage.StageHelper
javafx.collections.ModifiableObservableListBase
javafx.stage.Modality
javafx.stage.Window.SceneModel
com.sun.javafx.collections.VetoableListDecorator.VetoableSubListDecorator
javafx.beans.binding.NumberExpression
javafx.event.EventTarget
com.sun.javafx.tk.TKPulseListener
javafx.beans.property.SimpleObjectProperty
javafx.collections.ModifiableObservableListBase.SubObservableList
org.newfdog.util.logging.RotatingFilePrintStream.MeteredStream
com.sun.javafx.event.EventDispatchChainImpl
javafx.stage.Stage
javafx.beans.property.ReadOnlyDoubleWrapper
javafx.collections.FXCollections
javafx.application.Preloader.PreloaderNotification
javafx.scene.Scene
javafx.collections.FXCollections.UnmodifiableObservableListImpl
org.newfdog.util.logging.RotatingFilePrintStream.ErrorManager
javafx.beans.property.ObjectProperty
javafx.beans.value.ObservableBooleanValue
com.sun.javafx.application.ParametersImpl
javafx.beans.property.SimpleDoubleProperty
javafx.application.Preloader
javafx.beans.value.ObservableValue
com.sun.javafx.perf.PerformanceTracker
javafx.beans.InvalidationListener
com.sun.javafx.application.PlatformImpl
javafx.beans.value.WritableObjectValue
javafx.beans.binding.DoubleExpression
javafx.beans.property.DoublePropertyBase
javafx.application.Application.Parameters
com.sun.glass.utils.NativeLibLoader
com.sun.javafx.SecurityUtil
javafx.collections.ListChangeListener
javafx.collections.WeakListChangeListener
com.sun.javafx.stage.StagePeerListener
com.sun.javafx.collections.TrackableObservableList
javafx.beans.property.ReadOnlyObjectProperty
com.sun.javafx.stage.WindowCloseRequestHandler
com.sun.javafx.application.WindowsHighContrastScheme
com.sun.javafx.util.ModuleHelper
javafx.beans.binding.ObjectExpression
com.sun.javafx.binding.ExpressionHelperBase
javafx.beans.property.BooleanProperty
com.sun.javafx.stage.WindowHelper.WindowAccessor
javafx.collections.ListChangeBuilder.SubChange
com.sun.javafx.collections.ListListenerHelper.Generic
javafx.application.Preloader.ErrorNotification
javafx.beans.DefaultProperty
com.sun.javafx.stage.WindowHelper
javafx.geometry.Rectangle2D
com.sun.javafx.collections.ChangeHelper
org.newfdog.util.logging.Logger.CallerFinder
org.newfdog.util.logging.Logger
com.sun.javafx.event.CompositeEventDispatcher
com.sun.javafx.event.EventHandlerManager
javafx.beans.property.ReadOnlyBooleanProperty
com.sun.javafx.collections.ListListenerHelper.SingleInvalidation
com.sun.javafx.collections.ObservableListWrapper
javafx.stage.Window.TKBoundsConfigurator
com.sun.javafx.collections.SourceAdapterChange
com.sun.javafx.embed.swing.SwingFXUtilsImpl
com.sun.javafx.util.Utils
javafx.stage.Window
javafx.beans.property.Property
com.sun.javafx.collections.VetoableListDecorator.VetoableListIteratorDecorator
com.sun.javafx.application.LauncherImpl
com.sun.javafx.application.PlatformImpl.FinishListener
javafx.stage.StageStyle
javafx.beans.value.WritableBooleanValue
javafx.application.Preloader.ProgressNotification
com.sun.javafx.scene.SceneHelper
com.sun.javafx.runtime.VersionInfo
javafx.beans.property.SimpleBooleanProperty
com.sun.javafx.collections.ListListenerHelper.SingleChange
javafx.event.EventDispatcher
com.sun.javafx.stage.WindowEventDispatcher
javafx.beans.value.ObservableNumberValue
javafx.collections.ObservableListBase
com.sun.javafx.collections.VetoableListDecorator
javafx.collections.ListChangeBuilder
com.sun.glass.ui.Application
javafx.beans.property.ObjectPropertyBase
javafx.beans.binding.NumberExpressionBase
com.sun.javafx.scene.SceneHelper.SceneAccessor
javafx.beans.property.ReadOnlyBooleanWrapper
com.sun.javafx.perf.PerformanceTracker.SceneAccessor
com.sun.javafx.collections.VetoableListDecorator.VetoableSubListDecorator.ModCountAccessorImplSub
javafx.beans.value.WritableDoubleValue
javafx.collections.ListChangeBuilder.IterableChange
com.sun.javafx.collections.VetoableListDecorator.ModCountAccessor
com.sun.javafx.tk.Toolkit
javafx.stage.Screen
javafx.beans.value.WritableNumberValue
javafx.beans.property.DoubleProperty
com.sun.javafx.event.EventRedirector
javafx.beans.property.ReadOnlyProperty
com.sun.javafx.collections.VetoableListDecorator.VetoableIteratorDecorator
com.sun.javafx.tk.TKScreenConfigurationListener
com.sun.javafx.collections.ElementObserver
com.sun.javafx.tk.TKStageListener
com.sun.javafx.collections.SortableList
org.newfdog.util.logging.RotatingFilePrintStream
javafx.beans.property.ReadOnlyObjectWrapper
com.sun.javafx.stage.StageHelper.StageAccessor
javafx.beans.property.ReadOnlyDoubleProperty
com.sun.javafx.PlatformUtil
javafx.application.Preloader.StateChangeNotification
org.newfdog.util.logging.RotatingFilePrintStream.InitializationErrorManager
com.sun.javafx.collections.ListListenerHelper
com.sun.javafx.stage.WindowPeerListener
javafx.application.Preloader.StateChangeNotification.Type
javafx.event.EventDispatchChain
com.sun.javafx.tk.Toolkit.ImageAccessor
com.sun.javafx.tk.TKListener
com.sun.javafx.collections.VetoableListDecorator.ModCountAccessorImpl
javafx.collections.ListChangeListener.Change
javafx.beans.value.WritableValue
javafx.application.Application
javafx.beans.value.ObservableDoubleValue
javafx.beans.property.BooleanPropertyBase
[2/8] Performing analysis... [*****] (3.2s @ 0.51GB)
4,447 reachable types (71.8% of 6,192 total)
5,243 reachable fields (44.7% of 11,740 total)
21,709 reachable methods (47.0% of 46,176 total)
1,484 types, 5 fields, and 275 methods registered for reflection
58 types, 58 fields, and 52 methods registered for JNI access
5 native libraries: -framework Foundation, dl, m, pthread, z
[3/8] Building universe... (0.7s @ 0.48GB)
[4/8] Parsing methods... [*] (0.5s @ 0.47GB)
[5/8] Inlining methods... [**] (0.1s @ 0.51GB)
[6/8] Compiling methods... [***] (8.4s @ 1.04GB)
[7/8] Laying out methods... [*] (1.4s @ 1.13GB)
[8/8] Creating image... [**] (3.1s @ 1.66GB)
17.56MB (39.53%) for code area: 11,426 compilation units
26.19MB (58.95%) for image heap: 833,598 objects and 58 resources
688.87kB ( 1.51%) for other data
44.42MB in total
----------------------------------------------------------------------------------------------------
Top 10 origins of code area: Top 10 object types in image heap:
11.94MB java.base 5.39MB c.o.s.e.p.f.c.CallingConte~rest$SlimNode
3.78MB svm.jar (Native Image) 3.04MB byte[] for java.lang.String
549.51kB com.oracle.svm.svm_enterprise 2.95MB byte[] for code metadata
297.72kB java.logging 2.04MB java.lang.String
268.16kB javafx.base 1.80MB c.o.s.e.p.f.CommonInstrum~Data$IfPayload
212.12kB javafx.graphics 1.59MB int[]
149.43kB newfdog.logger 1.32MB c.o.s.e.p.f.CommonInstrum~odEntryPayload
88.23kB jdk.graal.compiler 1.06MB c.o.s.e.p.framework.ProfilingMethod
62.60kB org.graalvm.collections 876.41kB c.o.s.e.p.f.c.CallingConte~st$SlimNode[]
55.31kB jdk.proxy2 814.25kB java.lang.Class
140.60kB for 8 more packages 5.34MB for 1170 more object types
For more details, open 'jarb-build-report.html'.
----------------------------------------------------------------------------------------------------
Security report:
- Binary includes Java deserialization.
- CycloneDX SBOM with 7 component(s) is embedded in binary (554.00B).
----------------------------------------------------------------------------------------------------
Recommendations:
PGO: Use Profile-Guided Optimizations ('--pgo') for improved throughput.
HEAP: Set max heap for improved and more predictable memory usage.
QBM: Use the quick build mode ('-Ob') to speed up builds during development.
----------------------------------------------------------------------------------------------------
1.6s (6.8% of total time) in 516 GCs | Peak RSS: 2.77GB | CPU load: 9.46
----------------------------------------------------------------------------------------------------
Build artifacts:
/Users/jerry/NetBeansProjects/jarbrowser/jarb (executable)
/Users/jerry/NetBeansProjects/jarbrowser/jarb-build-report.html (build_info)
====================================================================================================
Finished generating 'jarb' in 22.9s.
Run as ./jarb -XX:MissingRegistrationReportingMode=Warn
jerry@Jerrys-MacBook-Pro jarbrowser % ./jarb -XX:MissingRegistrationReportingMode=Warn
Note: this run will print partial stack traces of the locations where a class org.graalvm.nativeimage.MissingReflectionRegistrationError would be thrown when the -H:+ThrowMissingRegistrationErrors option is set. The trace stops at the first entry of JDK code and provides 8 lines of context.
org.graalvm.nativeimage.MissingReflectionRegistrationError: The program tried to reflectively access class
org.newfdog.jar.Jarbrowser
without it being registered for runtime reflection. Add org.newfdog.jar.Jarbrowser to the reflection metadata to solve this problem. See https://www.graalvm.org/latest/reference-manual/native-image/metadata/#reflection for help.
java.base@24/java.lang.Class.forName(DynamicHub.java:1497)
javafx.graphics@24/javafx.application.Application.launch(Application.java:299)
jarbrowser@1.0.0/org.newfdog.jar.Jarbrowser.main(Jarbrowser.java:125)
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: org.newfdog.jar.Jarbrowser
at javafx.graphics@24/javafx.application.Application.launch(Application.java:311)
at jarbrowser@1.0.0/org.newfdog.jar.Jarbrowser.main(Jarbrowser.java:125)
Caused by: java.lang.ClassNotFoundException: org.newfdog.jar.Jarbrowser
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:215)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:183)
at java.base@24/java.lang.Class.forName(DynamicHub.java:1509)
at java.base@24/java.lang.Class.forName(DynamicHub.java:1497)
at javafx.graphics@24/javafx.application.Application.launch(Application.java:299)
... 1 more
Using the latest version of GraalVM can resolve many issues.
- I tried with the latest version of GraalVM.
GraalVM Version
java version "24" 2025-03-18
Java(TM) SE Runtime Environment Oracle GraalVM 24+36.1 (build 24+36-jvmci-b01)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 24+36.1 (build 24+36-jvmci-b01, mixed mode, sharing)
JavaFX version 24
Operating System and Version
MacOS Sequoia 15.4.1
Troubleshooting Confirmation
- I tried the suggestions in the troubleshooting guide.
Run Command
native-image --verbose \
-cp /Users/jerry/NetBeansProjects/jarbrowser/src/main/resources/META-INF/native-image \
--enable-sbom \
--pgo-instrument \
-march=native \
--emit build-report \
--module-path /Users/jerry/javafx-jmods-24:/Users/jerry/tools/mods\
:/Users/jerry/javafx-sdk-24/lib\
:/Users/jerry/tools/jars \
--add-modules javafx.graphics,javafx.fxml,javafx.controls,newfdog.jarscan,jarbrowser \
--module jarbrowser/org.newfdog.jar.Jarbrowser -o jarb \
--exact-reachability-metadata \
--enable-native-access=ALL-UNNAMED \
--trace-object-instantiation=org.newfdog.jar.Jarbrowser
Expected Behavior
I expected trouble from javafx libraries. but am not getting that far. The samples I have seen all use older special gluon modified versions.
I am trying to understand requirements. I tried the maven plugin, but that did not help, and the output was not useful in determining the problems.
Being a novice with maven I gave up for now on using it for jlink, jpackage, or native-image. Running them from scripts on the command line has provided
more insight and success. I hope I have provided enough information. Any suggestions on things to try would be appreciated.
Actual Behavior
./jarb -XX:MissingRegistrationReportingMode=Warn
Note: this run will print partial stack traces of the locations where a class org.graalvm.nativeimage.MissingReflectionRegistrationError would be thrown when the -H:+ThrowMissingRegistrationErrors option is set. The trace stops at the first entry of JDK code and provides 8 lines of context.
org.graalvm.nativeimage.MissingReflectionRegistrationError: The program tried to reflectively access class
org.newfdog.jar.Jarbrowser
without it being registered for runtime reflection. Add org.newfdog.jar.Jarbrowser to the reflection metadata to solve this problem. See https://www.graalvm.org/latest/reference-manual/native-image/metadata/#reflection for help.
java.base@24/java.lang.Class.forName(DynamicHub.java:1497)
javafx.graphics@24/javafx.application.Application.launch(Application.java:299)
jarbrowser@1.0.0/org.newfdog.jar.Jarbrowser.main(Jarbrowser.java:125)
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: org.newfdog.jar.Jarbrowser
at javafx.graphics@24/javafx.application.Application.launch(Application.java:311)
at jarbrowser@1.0.0/org.newfdog.jar.Jarbrowser.main(Jarbrowser.java:125)
Caused by: java.lang.ClassNotFoundException: org.newfdog.jar.Jarbrowser
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:215)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:183)
at java.base@24/java.lang.Class.forName(DynamicHub.java:1509)
at java.base@24/java.lang.Class.forName(DynamicHub.java:1497)
at javafx.graphics@24/javafx.application.Application.launch(Application.java:299)
... 1 more
Steps to Reproduce
Run native-image
run the image created ./jarb -XX:MissingRegistrationReportingMode=Warn
I created a jarb.nib, but it is not accepted, with the message FileType not allowed: .nib
Additional Context
No response
Run-Time Log Output and Error Messages
No response