Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

316
Views
Prism Pipeline failing when running Worldographer on Podman in a Debian 11 Container

Description

I am attempting to run a Java JAR application via a Container being ran by Podman using Debian 11. I downloaded the free Worldographer JAR from their website. I launch the container using the following commands.

#!/usr/bin/env bash

podman run \
  --rm \
  -it \
  --network=host \
  --env=DISPLAY \
  --volume="/tmp/.X11-unix:/tmp/.X11-unix" \
  --volume="$(pwd):/app" \
  --workdir="/app" \
  docker.io/library/openjdk:17.0.1-bullseye \
  /bin/bash

Then inside the container I install the following packages.

apt update
apt install --yes libxext6 libxrender1 libxtst6 openjfx

I then run the application with the following command.

java -Djavafx.verbose=true -Dprism.verbose=true -Xmx4G -Dprism.maxvram=3G -jar worldographer.jar

The application window appears, but there are missing buttons other than the header.

OpenJDK with OpenJFX failing to load

I get the following errors.

root@pop-os:/app# java -Djavafx.verbose=true -Dprism.verbose=true -Xmx4G -Dprism.maxvram=3G -jar worldographer.jar 
Prism pipeline init order: es2 sw 
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline failed for com.sun.prism.es2.ES2Pipeline
java.lang.ClassNotFoundException: com.sun.prism.es2.ES2Pipeline
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    at java.base/java.lang.Thread.run(Thread.java:833)
*** Fallback to Prism SW pipeline
Prism pipeline name = com.sun.prism.sw.SWPipeline
WARNING: java.lang.UnsatisfiedLinkError: Can't load library: /app/libprism_sw.so
GraphicsPipeline.createPipeline failed for com.sun.prism.sw.SWPipeline
java.lang.UnsatisfiedLinkError: no prism_sw in java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2429)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
    at java.base/java.lang.System.loadLibrary(System.java:1989)
    at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:163)
    at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:53)
    at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:42)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:41)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    at java.base/java.lang.Thread.run(Thread.java:833)
Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
    at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:261)
    at javafx.scene.image.Image.loadImage(Image.java:1078)
    at javafx.scene.image.Image.initialize(Image.java:813)
    at javafx.scene.image.Image.<init>(Image.java:703)
    at com.inkwellideas.ographer.model.TerrainType.setupDefaults(TerrainType.java:111)
    at com.inkwellideas.ographer.model.Terrain.<clinit>(Terrain.java:16)
    at com.inkwellideas.ographer.ui.Worldographer.main(Worldographer.java:12960)
    at com.inkwellideas.ographer.ui.Launcher.main(Launcher.java:122)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.inkwellideas.ographer.ui.Worldographer.main(Worldographer.java:12960)
    at com.inkwellideas.ographer.ui.Launcher.main(Launcher.java:122)
Caused by: java.lang.RuntimeException: No toolkit found
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:273)
    at javafx.scene.image.Image.loadImage(Image.java:1078)
    at javafx.scene.image.Image.initialize(Image.java:813)
    at javafx.scene.image.Image.<init>(Image.java:703)
    at com.inkwellideas.ographer.model.TerrainType.setupDefaults(TerrainType.java:111)
    at com.inkwellideas.ographer.model.Terrain.<clinit>(Terrain.java:16)
    ... 2 more

The Question

Is there something else I'm missing? This also happens when I run it in a Flatpak Sdk and enabling the OpenJDK Extension. So, there is something I'm missing.

--EDIT 2021-12-13--

I found some links to running something with JavaFX. So, using the following steps, I am able to get a new error.

I added --volume="/tmp:/tmp" to the podman run command.

apt update
apt install --yes libxext6 libxrender1 libxtst6 openjfx

curl --location -O https://download2.gluonhq.com/openjfx/17.0.1/openjfx-17.0.1_linux-x64_bin-sdk.zip
unzip openjfx-17.0.1_linux-x64_bin-sdk.zip
export JAVA_JFX=/app/javafx-sdk-17.0.1/lib

java -Djavafx.verbose=true \
  -Dprism.verbose=true \
  -Xmx4G \
  -Dprism.maxvram=3G \
  --module-path $JAVA_JFX \
  --add-modules javafx.controls \
  -jar worldographer.jar

The error I now get is:

(java:2472): dbind-WARNING **: 05:19:06.156: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Gtk-Message: 05:19:06.178: Failed to load module "canberra-gtk-module"
Gtk-Message: 05:19:06.179: Failed to load module "canberra-gtk-module"
 vsync: true vpipe: false
Loaded /app/javafx-sdk-17.0.1/lib/./libjavafx_font.so from relative path
Loaded /app/javafx-sdk-17.0.1/lib/./libjavafx_iio.so from relative path
Loaded /app/javafx-sdk-17.0.1/lib/./libjavafx_font_freetype.so from relative path
Loaded /app/javafx-sdk-17.0.1/lib/./libjavafx_font_pango.so from relative path
Exception in Application start method
QuantumRenderer: shutdown
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.sg.prism.web.NGWebView (in unnamed module @0x6399870c) cannot access class com.sun.javafx.sg.prism.NGGroup (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.sg.prism to unnamed module @0x6399870c
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at com.inkwellideas.ographer.ui.Worldographer.showLicenseDialog(Worldographer.java:574)
    at com.inkwellideas.ographer.ui.Worldographer.start(Worldographer.java:476)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:290)
over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!