Windows Installation Instructions, All DLL Files Missing
Christopher Miles
twitch at nervestaple.com
Fri Apr 17 20:18:48 UTC 2020
I have downloaded both the "mods" and the SDK. I put them alongside the
JDK on my workstation.
C:\Program Files\Java\jdk-14.0.1
C:\Program Files\Java\javafx-sdk-14
C:\Program Files\Java\javafx-jmods-14.0.1
If I remove the path `C:\Program Files\Java\javafx-sdk-14\bin` and
point`jlink` at the `C:\Program Files\Java\javafx-jmods-14.0.1` path...
jlink --module-path "C:\Program Files\Java\javafx-sdk-14\lib;C:\Program
Files\Java\jdk-14.0.1/jmods" --add-modules
javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web,java.sql,java.base
--output C:\Users\cmiles\source\repos\xmltool\target/jlink --strip-debug
--no-man-pages --no-header-files --compress=2
...and remove `C:\Program Files\Java\javafx-sdk-14\bin` from my global
path, the application builds. When I try to run the application I see
the following error.
Graphics Device initialization failed for : d3d, sw
Error initializing QuantumRenderer: no suitable pipeline found
Swapping out the mods path for the SDK "lib" directory has, as far as I
can tell, the exact same effect. :-(
If I add the path `C:\Program Files\Java\javafx-sdk-14\bin` to my global
PATH then it does run successfully.
I hear what you're saying but this doesn't seem to be the case...
What version of Windows are you using? I don't think this is a Windows
10 specific issue but perhaps there is something platform specific involved.
Thank you!
Scott Palmer wrote on 4/17/2020 15:23:
> I use jlink and jpackage to distribute JavaFX applications.
> You suggest there will be a problem if you use jlink, but it will work if you include the needed javafx modules. The .jmod files contain the necessary native libraries and jlink will build a JRE that has the DLLs in the right place for the runtime to find them.
>
> Modifying your PATH is not the right way to do this. Distributing a runtime with your application is the right way to solve this. The jlink and jpackage tools make this fairly easy. I use a custom Gradle script to bundle my application, it works well.
>
> Scott
>
>> On Apr 17, 2020, at 2:55 PM, Christopher Miles <twitch at nervestaple.com> wrote:
>>
>> I manage a project[0] that leverages JavaFX. It's been a while since I've worked on this project, almost two years. At that time JavaFX was bundled with the Java runtime from Oracle. The few customers I had would simply run the application from the bundled launcher and as long as they had Java installed, it would work.
>>
>> It's time for me to add some features to the project, I am now using OpenJDK 14.0.1 and I installed the OpenJavaFX package and followed the instructions[1] from the following URL:
>>
>> https://openjfx.io/openjfx-docs/#install-javafx
>>
>> I am on Windows and followed the instructions for that platform. Unfortunately, things didn't really work. The error was as follows:
>>
>> Graphics Device initialization failed for : d3d, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRend erer: no suitable pipeline found at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(Unkno wn Source)
>>
>> I fussed with this and that but nothing made a difference. Eventually I tried adding the "bin" directory from the JavaFX distribution to my path. This is the entry I added to my global PATH variable:
>>
>> C:\Program Files\Java\javafx-sdk-14\bin
>>
>> Is this the right way to do this and, if so, why isn't this included in the directions? Is this a Windows specific issue?
>>
>> Also, what impact does this have on distribution of applications?
>>
>> Looking at the "Runtime Images" instructions, it looks like the same issues will be present. Those instructions use `jlink` to point to the JavaFX libraries and the JAVAFX modules (distributed in another package) but also leave off references to the DLL files in the "bin" directory. I am worried that I will need to have people manually install the OpenJavaFX distribution and add the "bin" directory to their path in order to run my application. Please say it's not so!
>>
>> Any help or pointers to additional documentation would be very much appreciated! I have made it over the bumps and can now continue development of my application, my next concern is distributing it to customers.
>>
>> --
>> Miles
>>
>> [0]: https://github.com/cmiles74/xmltool
>> [1]: https://openjfx.io/openjfx-docs/#install-javafx
>
--
Miles
More information about the openjfx-dev
mailing list