<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
On 29.09.2023 14:53, Kevin Rushforth wrote:<br>
<blockquote type="cite"
cite="mid:90354a14-8d37-cae0-a37b-86e9d3a1ad27@oracle.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
This is a new native method (actually moved from another class) in
JavaFX 21. This is very likely due to a mismatch between the
native library and the Java classes. I suspect you have a
directory in your PATH that is picking up an old javafx_font.dll
library. Run your program with "-Djavafx.verbose=true" to see
where the library is loaded from.<br>
</blockquote>
<p>Thank you, this is the output:</p>
<blockquote>
<p>WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-console-l1-1-0.dll<br>
Loaded C:\Program
Files\TortoiseGit\bin\api-ms-win-core-console-l1-1-0.dll from
java.library.path<br>
WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-console-l1-2-0.dll<br>
System.loadLibrary(api-ms-win-core-console-l1-2-0) succeeded<br>
WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-datetime-l1-1-0.dll<br>
Loaded C:\Program
Files\TortoiseGit\bin\api-ms-win-core-datetime-l1-1-0.dll from
java.library.path<br>
WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-debug-l1-1-0.dll<br>
Loaded C:\Program
Files\TortoiseGit\bin\api-ms-win-core-debug-l1-1-0.dll from
java.library.path<br>
WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-errorhandling-l1-1-0.dll<br>
Loaded C:\Program
Files\TortoiseGit\bin\api-ms-win-core-errorhandling-l1-1-0.dll
from java.library.path<br>
WARNING: java.lang.UnsatisfiedLinkError: Can't load library:
C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\api-ms-win-core-file-l1-1-0.dll<br>
Loaded C:\Program
Files\TortoiseGit\bin\api-ms-win-core-file-l1-1-0.dll from
java.library.path</p>
<p>... cut ...<br>
</p>
</blockquote>
<p>So indeed, it seems to be picking up those dlls from TortoiseGit.</p>
<p>The dlls are there:</p>
<blockquote>
<p>C:\Program Files\BellSoft\jdk-21-full\bin</p>
<p> Directory of C:\Program Files\BellSoft\jdk-21-full\bin<br>
<br>
19.09.2023 17:09 22 008
api-ms-win-core-console-l1-1-0.dll<br>
19.09.2023 17:09 21 992
api-ms-win-core-console-l1-2-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-datetime-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-debug-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-errorhandling-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-fibers-l1-1-0.dll<br>
19.09.2023 17:09 26 120
api-ms-win-core-file-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-file-l1-2-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-file-l2-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-handle-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-heap-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-interlocked-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-libraryloader-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-localization-l1-2-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-memory-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-namedpipe-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-core-processenvironment-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-processthreads-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-processthreads-l1-1-1.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-profile-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-rtlsupport-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-string-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-synch-l1-1-0.dll<br>
19.09.2023 17:09 21 968
api-ms-win-core-synch-l1-2-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-sysinfo-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-core-timezone-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-core-util-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-crt-conio-l1-1-0.dll<br>
19.09.2023 17:09 26 104
api-ms-win-crt-convert-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-crt-environment-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-crt-filesystem-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-crt-heap-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-crt-locale-l1-1-0.dll<br>
19.09.2023 17:09 30 176
api-ms-win-crt-math-l1-1-0.dll<br>
19.09.2023 17:09 30 216
api-ms-win-crt-multibyte-l1-1-0.dll<br>
19.09.2023 17:09 75 232
api-ms-win-crt-private-l1-1-0.dll<br>
19.09.2023 17:09 22 008
api-ms-win-crt-process-l1-1-0.dll<br>
19.09.2023 17:09 26 080
api-ms-win-crt-runtime-l1-1-0.dll<br>
19.09.2023 17:09 26 120
api-ms-win-crt-stdio-l1-1-0.dll<br>
19.09.2023 17:09 26 120
api-ms-win-crt-string-l1-1-0.dll<br>
19.09.2023 17:09 21 984
api-ms-win-crt-time-l1-1-0.dll<br>
19.09.2023 17:09 22 024
api-ms-win-crt-utility-l1-1-0.dll<br>
</p>
</blockquote>
<p>but the look-up is using "C:\Program
Files\BellSoft\jdk-21-full\bin\javafx\..."</p>
<p>The Windows PATH starts out with:</p>
<blockquote>
<p>PATH=C:\Program Files\BellSoft\jdk-21-full\bin;... cut ...<br>
</p>
</blockquote>
<p>---rony<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:90354a14-8d37-cae0-a37b-86e9d3a1ad27@oracle.com"> <br>
<div class="moz-cite-prefix">On 9/29/2023 5:06 AM, Rony G.
Flatscher wrote:<br>
</div>
<blockquote type="cite"
cite="mid:a94a107b-a916-4dca-b228-a2b1fb2c8572@wu.ac.at">
<p>Downloaded the 64-bit OpenJDK21 package for Windows that
include JavaFX from Azul ("FX") and Bellsouth ("full"). </p>
<p>Both packages cause the following error:</p>
<blockquote>
<p>Exception in Application start method<br>
Exception in thread "JavaFX Application Thread"
java.lang.UnsatisfiedLinkError: 'java.lang.String
com.sun.javafx.font.direct<br>
write.DWFactory.regReadFontLink(java.lang.String)'<br>
at
javafx.graphics/com.sun.javafx.font.directwrite.DWFactory.regReadFontLink(Native
Method)<br>
at
javafx.graphics/com.sun.javafx.font.directwrite.DWFactory.getFallbacks(DWFactory.java:166)<br>
at
javafx.graphics/com.sun.javafx.font.LogicalFont.getLinkedFonts(LogicalFont.java:214)<br>
at
javafx.graphics/com.sun.javafx.font.LogicalFont.getNumSlots(LogicalFont.java:223)<br>
at
javafx.graphics/com.sun.javafx.font.CompositeGlyphMapper.<init>(CompositeGlyphMapper.java:62)<br>
at
javafx.graphics/com.sun.javafx.font.LogicalFont.getGlyphMapper(LogicalFont.java:439)<br>
at
javafx.graphics/com.sun.javafx.text.GlyphLayout.breakRuns(GlyphLayout.java:229)<br>
at
javafx.graphics/com.sun.javafx.text.PrismTextLayout.buildRuns(PrismTextLayout.java:819)<br>
at
javafx.graphics/com.sun.javafx.text.PrismTextLayout.layout(PrismTextLayout.java:1070)<br>
at
javafx.graphics/com.sun.javafx.text.PrismTextLayout.ensureLayout(PrismTextLayout.java:230)<br>
at
javafx.graphics/com.sun.javafx.text.PrismTextLayout.getBounds(PrismTextLayout.java:256)<br>
at
javafx.controls/com.sun.javafx.scene.control.skin.Utils.computeTextWidth(Utils.java:129)<br>
at
javafx.controls/javafx.scene.control.skin.LabeledSkinBase.computeMinLabeledPartWidth(LabeledSkinBase.java:809)<br>
at
javafx.controls/javafx.scene.control.skin.LabeledSkinBase.computeMinWidth(LabeledSkinBase.java:306)<br>
at
javafx.controls/javafx.scene.control.Control.computeMinWidth(Control.java:504)<br>
at
javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)<br>
at
javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)<br>
at
javafx.graphics/javafx.scene.layout.Region.computeChildPrefAreaWidth(Region.java:1959)<br>
at
javafx.graphics/javafx.scene.layout.AnchorPane.computeChildWidth(AnchorPane.java:344)<br>
at
javafx.graphics/javafx.scene.layout.AnchorPane.layoutChildren(AnchorPane.java:380)<br>
at
javafx.graphics/javafx.scene.Parent.layout(Parent.java:1208)<br>
at
javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:594)<br>
at
javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2600)<br>
at
javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:401)<br>
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:400)<br>
at
javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:400)<br>
at
javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:430)<br>
at
javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:592)<br>
at
javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:572)<br>
at
javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:565)<br>
at
javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:352)<br>
at
javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)<br>
at
javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native
Method)<br>
at
javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185)<br>
at java.base/java.lang.Thread.run(Thread.java:1583)<br>
</p>
</blockquote>
<p>Would anyone know how to fix this, if possible at all?</p>
<p>---rony</p>
</blockquote>
</blockquote>
<br>
</body>
</html>