apache / apache/netbeans

Jlink and Ant with JavaFX won't start

Open
#5,817 0 comments 0 reactions 0 assignees View on GitHub
Ant kind:bug needs:triage
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Apache NetBeans version

Apache NetBeans 17

### What happened

On Linux, using any JavaFX version and any JDK greater equal than 9
Project made using Ant and modular, when clean and Build with the jlink option enabled in the property.

It generates the link, but some JavaFX .so is missing and does not start.

It is also not putting the JLINK_VM_OPTIONS options in the call, when it has VM OPTIONS in the properties

```
#!/bin/sh
JLINK_VM_OPTIONS=
DIR=`dirname $0`
$DIR/java $JLINK_VM_OPTIONS -m com.my/com.my.system.Main "$@"
```

### How to reproduce

cd ....//lib
```
drwxrwxr-x 2 jorge jorge 4096 abr 12 11:24 default
drwxrwxr-x 2 jorge jorge 4096 abr 12 11:24 j9vm
-rw-rw-r-- 1 jorge jorge 185635 abr 12 11:24 java_ca.properties
-rw-rw-r-- 1 jorge jorge 221643 abr 12 11:24 java_cs.properties
-rw-rw-r-- 1 jorge jorge 184738 abr 12 11:24 java_de.properties
-rw-rw-r-- 1 jorge jorge 185340 abr 12 11:24 java_es.properties
-rw-rw-r-- 1 jorge jorge 192364 abr 12 11:24 java_fr.properties
-rw-rw-r-- 1 jorge jorge 232401 abr 12 11:24 java_hu.properties
-rw-rw-r-- 1 jorge jorge 168129 abr 12 11:24 java_it.properties
-rw-rw-r-- 1 jorge jorge 360688 abr 12 11:24 java_ja.properties
-rw-rw-r-- 1 jorge jorge 287086 abr 12 11:24 java_ko.properties
-rw-rw-r-- 1 jorge jorge 212065 abr 12 11:24 java_pl.properties
-rw-rw-r-- 1 jorge jorge 137920 abr 12 11:24 java.properties
-rw-rw-r-- 1 jorge jorge 180848 abr 12 11:24 java_pt_BR.properties
-rw-rw-r-- 1 jorge jorge 586609 abr 12 11:24 java_ru.properties
-rw-rw-r-- 1 jorge jorge 202909 abr 12 11:24 java_sk.properties
-rw-rw-r-- 1 jorge jorge 169362 abr 12 11:24 java_sl.properties
-rw-rw-r-- 1 jorge jorge 224812 abr 12 11:24 java_tr.properties
-rw-rw-r-- 1 jorge jorge 220772 abr 12 11:24 java_zh_CN.properties
-rw-rw-r-- 1 jorge jorge 220821 abr 12 11:24 java_zh.properties
-rw-rw-r-- 1 jorge jorge 215863 abr 12 11:24 java_zh_TW.properties
-rwxrwxr-x 1 jorge jorge 16544 abr 12 11:24 jexec
-rw-rw-r-- 1 jorge jorge 110510 abr 12 11:24 jrt-fs.jar
-rwxrwxr-x 1 jorge jorge 21864 abr 12 11:24 jspawnhelper
-rw-rw-r-- 1 jorge jorge 29 abr 12 11:24 jvm.cfg
-rw-rw-r-- 1 jorge jorge 46416 abr 12 11:24 libawt_headless.so
-rw-rw-r-- 1 jorge jorge 870912 abr 12 11:24 libawt.so
-rw-rw-r-- 1 jorge jorge 482656 abr 12 11:24 libawt_xawt.so
-rw-rw-r-- 1 jorge jorge 2182040 abr 12 11:24 libfontmanager.so
-rw-rw-r-- 1 jorge jorge 54216 abr 12 11:24 libinstrument.so
-rw-rw-r-- 1 jorge jorge 50816 abr 12 11:24 libj2gss.so
-rw-rw-r-- 1 jorge jorge 239680 abr 12 11:24 libjavajpeg.so
-rw-rw-r-- 1 jorge jorge 167648 abr 12 11:24 libjava.so
-rw-rw-r-- 1 jorge jorge 15520 abr 12 11:24 libjawt.so
-rw-rw-r-- 1 jorge jorge 149440 abr 12 11:24 libjimage.so
-rw-rw-r-- 1 jorge jorge 81664 abr 12 11:24 libjli.so
-rw-rw-r-- 1 jorge jorge 47080 abr 12 11:24 libjncrypto.so
-rw-rw-r-- 1 jorge jorge 16144 abr 12 11:24 libjsig.so
-rw-rw-r-- 1 jorge jorge 85288 abr 12 11:24 libjsound.so
-rw-rw-r-- 1 jorge jorge 522968 abr 12 11:24 liblcms.so
-rw-rw-r-- 1 jorge jorge 15080 abr 12 11:24 libmanagement.so
-rw-rw-r-- 1 jorge jorge 606864 abr 12 11:24 libmlib_image.so
-rw-rw-r-- 1 jorge jorge 108712 abr 12 11:24 libnet.so
-rw-rw-r-- 1 jorge jorge 108912 abr 12 11:24 libnio.so
-rw-rw-r-- 1 jorge jorge 15704 abr 12 11:24 libprefs.so
-rw-rw-r-- 1 jorge jorge 15232 abr 12 11:24 librmi.so
-rw-rw-r-- 1 jorge jorge 373144 abr 12 11:24 libsplashscreen.so
-rw-rw-r-- 1 jorge jorge 63712 abr 12 11:24 libverify.so
-rw-rw-r-- 1 jorge jorge 40880 abr 12 11:24 libzip.so
-rw-rw-r-- 1 jorge jorge 97710629 abr 12 11:24 modules
-rw-rw-r-- 1 jorge jorge 1395 abr 12 11:24 options.default
-rw-rw-r-- 1 jorge jorge 11390 abr 12 11:24 psfontj2d.properties
-rw-rw-r-- 1 jorge jorge 3793 abr 12 11:24 psfont.properties.ja
drwxrwxr-x 2 jorge jorge 4096 abr 12 11:24 security
drwxrwxr-x 2 jorge jorge 4096 abr 12 11:24 server
-rw-rw-r-- 1 jorge jorge 102619 abr 12 11:24 tzdb.dat

```

cd ....//bin
./Main // script

display error

```
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 javafx.graphics@20/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
at javafx.graphics@20/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
at javafx.graphics@20/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@20/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
at javafx.graphics@20/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:857)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082)
Caused by: java.lang.RuntimeException: No toolkit found
at javafx.graphics@20/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@20/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
at javafx.graphics@20/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
... 5 more

```

### Did this work correctly in an earlier version?

No / Don't know

### Operating System

Ubuntu 20.04

### JDK

Any JDK greater equal 9

### Apache NetBeans packaging

Apache NetBeans provided installer

### Anything else

This error appears in all versions of NetBeans

### Are you willing to submit a pull request?

No

Contributor guide

Open the contributing guide

Research direction

Reproduce the modular Ant project on Ubuntu 20.04 with jlink enabled, then inspect the generated //bin/Main launcher and its lib directory. Check the generated launcher options and JavaFX runtime contents; done means the application starts without the QuantumRenderer error and configured JLINK_VM_OPTIONS are passed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.