I want to create an interface using Scene Builder. Can i use Scene Builder with ArcGIS Java API? I added ArcGis java API libraries to Scene Builder but i haven't any arcgis elements(except AttributionControl) in the left bar of the Scene Builder with custom elements.
Sorry, slight correction - jnilibs needs to go where the JAR report says it is looking for it. In your case this is C:\Users\osipa\AppData\Local\SceneBuilder.
Colin
Thank you. It works!
I did it but nothing changed, Jar Report is the same.
Hi,
The error output indicates that the native libs for runtime cannot be found when SceneBuilder tries to construct the controls. One way to fix that would be to copy the jniLIbs folder into SceneBuilder's library folder.
Thank you.
After reinstallation of the Scene Builder, adding of the arcgis-java-100.11.0.jar to the Library folder and adding of this lines into filter.txt i dont see AttributionControl but neither i see MapView or SceneView.
My jar Report:
Exception for: com/esri/arcgisruntime/internal/mapping/view/CalloutDefaultView.classjavafx.fxml.LoadException:unknown path:2
at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.InstantiationException: com.esri.arcgisruntime.internal.mapping.view.CalloutDefaultViewat java.base/java.lang.Class.newInstance(Unknown Source)... 13 moreCaused by: java.lang.NoSuchMethodException: com.esri.arcgisruntime.internal.mapping.view.CalloutDefaultView.<init>()at java.base/java.lang.Class.getConstructor0(Unknown Source)... 14 more
Exception for: com/esri/arcgisruntime/mapping/view/MapView.classjava.io.IOException: java.lang.ExceptionInInitializerErrorat com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:60)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.ExceptionInInitializerErrorat com.esri.arcgisruntime.mapping.view.MapView.create(MapView.java:93)at com.esri.arcgisruntime.mapping.view.MapView.<init>(MapView.java:87)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)at java.base/java.lang.Class.newInstance(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)... 7 moreCaused by: java.lang.RuntimeException: Could not find runtime in any of:- A directory specified by calling ArcGISRuntimeEnvironment.setInstallDirectory()- The current directory C:\Users\osipa\AppData\Local\SceneBuilder- A location specified by the environment variable ARCGISRUNTIMESDKJAVA_100_11_0- Within the ".arcgis" directory in the user's home path C:\Users\osipa\.arcgisat com.esri.arcgisruntime.ArcGISRuntimeEnvironment.lambda$getInstallDirectory$0(ArcGISRuntimeEnvironment.java:262)at java.base/java.util.Optional.orElseThrow(Unknown Source)at com.esri.arcgisruntime.ArcGISRuntimeEnvironment.getInstallDirectory(ArcGISRuntimeEnvironment.java:258)at com.esri.arcgisruntime.ArcGISRuntimeEnvironment.loadNativeLibraries(ArcGISRuntimeEnvironment.java:693)at com.esri.arcgisruntime.ArcGISRuntimeEnvironment.initialize(ArcGISRuntimeEnvironment.java:198)at com.esri.arcgisruntime.internal.jni.CoreGeoView.<clinit>(CoreGeoView.java:52)... 22 more
Exception for: com/esri/arcgisruntime/mapping/view/Callout.classjavafx.fxml.LoadException:unknown path:2
at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.InstantiationException: com.esri.arcgisruntime.mapping.view.Calloutat java.base/java.lang.Class.newInstance(Unknown Source)... 13 moreCaused by: java.lang.NoSuchMethodException: com.esri.arcgisruntime.mapping.view.Callout.<init>()at java.base/java.lang.Class.getConstructor0(Unknown Source)... 14 more
Exception for: com/esri/arcgisruntime/mapping/view/SceneView.classjava.io.IOException: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreGeoViewat com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:60)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreGeoViewat com.esri.arcgisruntime.mapping.view.SceneView.create(SceneView.java:74)at com.esri.arcgisruntime.mapping.view.SceneView.<init>(SceneView.java:68)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)at java.base/java.lang.Class.newInstance(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)... 7 more
Exception for: com/esri/arcgisruntime/mapping/view/MapView.classjava.io.IOException: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreMapViewat com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:60)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreMapViewat com.esri.arcgisruntime.mapping.view.MapView.create(MapView.java:93)at com.esri.arcgisruntime.mapping.view.MapView.<init>(MapView.java:87)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)at java.base/java.lang.Class.newInstance(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)... 7 more
Exception for: com/esri/arcgisruntime/mapping/view/SceneView.classjava.io.IOException: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreSceneViewat com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:60)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.exploreEntry(ExplorerBase.java:111)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.exploreEntry(JarExplorer.java:83)at com.oracle.javafx.scenebuilder.kit.library.util.JarExplorer.explore(JarExplorer.java:65)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.exploreAndUpdateLibrary(LibraryFolderWatcher.java:367)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.runDiscovery(LibraryFolderWatcher.java:155)at com.oracle.javafx.scenebuilder.kit.library.user.LibraryFolderWatcher.run(LibraryFolderWatcher.java:100)at java.base/java.lang.Thread.run(Unknown Source)Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.esri.arcgisruntime.internal.jni.CoreSceneViewat com.esri.arcgisruntime.mapping.view.SceneView.create(SceneView.java:74)at com.esri.arcgisruntime.mapping.view.SceneView.<init>(SceneView.java:68)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)at java.base/java.lang.Class.newInstance(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)at com.oracle.javafx.scenebuilder.kit.library.util.ExplorerBase.instantiateWithFXMLLoader(ExplorerBase.java:56)... 7 more
I placed filter.txt (with the lines from above) and arcgis-java-100.11.0.jar into SceneBuilder's library location and I could see MapView and SceneView as custom controls. Maybe try deleting SceneBuilder's library and starting again. I think if you have the filter correct then you should not see AttributionControl in the custom controls.
I will see if I can find someone else to verify that this works just in case I have missed something. You could also check what SceneBuilder says in the JAR report e.g.
From that same menu you can also confirm the library location.
Thank you. I've added this lines into filter.txt but nothing changes. I still have only AttributionControl
I think you can get it to work by doing some manual modification of the SceneBuilder library files. If you go to the SceneBuilder library location (e.g. AppData\Roaming\Scene Builder\Library) and add or modify filter.txt to contain the following
com.esri.arcgisruntime.internal.mapping.view.AttributionControl com.esri.arcgisruntime.mapping.view.Callout com.esri.arcgisruntime.internal.mapping.view.CalloutDefaultView
and then start SceneBuilder you will hopefully see MapView and SceneView as custom controls.
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.