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