Windows Installation Instructions, All DLL Files Missing

Kevin Rushforth kevin.rushforth at
Mon Apr 20 12:57:51 UTC 2020

Can you try running your app with the following two flags?

java -Djavafx.verbose=true -Dprism.verbose=true

That might help diagnose the problem.

-- Kevin

On 4/18/2020 11:18 AM, Christopher Miles wrote:
> Yep, that's where I downloaded it from.
> > PS C:\Users\cmiles\source\repos\xmltool> java --version
> > openjdk 14.0.1 2020-04-14
> > OpenJDK Runtime Environment (build 14.0.1+7)
> > OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
> When I look at the "bin" directory that came with the JavaFX SDK and 
> compare it to the "bin" directory that comes with OpenJDK there are 
> things in the JavaFX distribution that aren't present in the OpenJDK 
> distribution. These three caught my attention:
>   + prism_common.dll
>   + prism_d3d.dll
>   + prism_sw.dll
> I suspect missing these DLL's is what is causing the exception when I 
> try to launch my application.
> I took a look at "JDK-8207015" and I don't think that is my problem, 
> yet. It could be that if the "prism_xxx.dll" files were present, I 
> might run into this issue.
> I changed my `jlink` command to point at the "mods" as this seems like 
> the correct way to do this. Still, the app refuses to launch with the 
> same error message.
> > Graphics Device initialization failed for :  d3d, sw
> > Error initializing QuantumRenderer: no suitable pipeline found
> > java.lang.RuntimeException: java.lang.RuntimeException: Error 
> initializing QuantumRenderer: no suitable pipeline found
> I would very much like to avoid adding switches to a `java` invocation 
> in order to run the application. In your example, I would need to have 
> customer installed the JavaFX JDK to a specific location in order for 
> that to work. I'd also need to have some kind of wrapper to handle 
> other operating systems, like Linux or OS X. My goal is to distribute 
> one package with custom launching scripts (i.e. one for batch, 
> Powershell, and Linux/OS X shell) as I did under Java 8. This makes me 
> think that using `jlink` with the mods is the way to go, as long as I 
> can figure out why that is not working.
> Thank you for your help with this. :-)
> Kevin Rushforth wrote on 4/17/2020 17:34:
>>  From where are you getting your OpenJDK build? 
>> ? Somewhere else?
>> -- Kevin
>> On 4/17/2020 2:16 PM, Christopher Miles wrote:
>>> Yeah, I've tried it with both. The instructions on the JavaFX page 
>>> tell you to add the "lib" directory to the `javac` path and the 
>>> "mods" to the `jlink` path. I figured, since nothing is working, why 
>>> not try them the other way around? In all cases the results are the 
>>> same.
>>> I'm using OpenJDK, wouldn't that project have the same issue 
>>> distributing these DLL files? I would bet they would, since they are 
>>> also an open source project. I can run Swing projects, however, 
>>> without these DLL files.
>>> I can give the Oracle JDK a try. I had been shying away from it 
>>> since OpenJDK is getting to be so popular. If that works, I will let 
>>> the list know.
>>> As an aside, the JavaFX home page recommends using OpenJDK right now:
>>> Thank you!
>>> Kevin Rushforth wrote on 4/17/2020 16:51:
>>>> Where are you getting JDK 14.0.1 from? Does it include the 
>>>> Microsoft VS2017 DLLs and Windows SDK DLLs in jdk-14.0.1/bin? There 
>>>> are 45 of them (40 of them are of the form api-ms-win-*.dll). The 
>>>> JavaFX 14.0.1 sdk includes them, but the jmods do not. See 
>>>> JDK-8207015 [1] for why not. If the JDK has them, then there should 
>>>> be no problem running a jlinked app.
>>>> One possible problem is that your jlink line is wrong. You should 
>>>> not point to the SDK at all when running jlink. Use the jmods with 
>>>> jlink (don't use the sdk). Use the sdk with javac and java 
>>>> --module-path (don't use the jmods at all).
>>>> Btw, even if you are running a JDK that for some reason doesn't 
>>>> have the Microsoft DLLs, you should still be able to run using the 
>>>> SDK (directly, not via jlink, which requires the jmods) as follows:
>>>> java --module-path "C:\Program Files\Java\javafx-sdk-14\lib" 
>>>> --add-modules 
>>>> javafx.base,javafx.controls,javafx.fxml,,,javafx.swing,javafx.web 
>>>> MyApplication
>>>> If this doesn't work without you putting javafx-sdk-14/bin in your 
>>>> PATH then something else is wrong.
>>>> -- Kevin
>>>> [1]
>>>> On 4/17/2020 1:18 PM, Christopher Miles wrote:
>>>>> 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.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> 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:
>>>>>>> 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 
>>>>>>> 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]:
>>>>>>> [1]:

More information about the openjfx-dev mailing list