Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8191176

JavaFX Self-Contained Application fails with error "Failed to find library: jvm.dll"

    XMLWordPrintable

Details

    • x86_64
    • windows_10

    Backports

      Description

        FULL PRODUCT VERSION :
        java version "1.8.0_152"
        Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
        Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

        ADDITIONAL OS VERSION INFORMATION :
        Windows Server 2008 R2
        Windows Server 2012
        Windows Server 2012 R2
        Windows Server 2016

        A DESCRIPTION OF THE PROBLEM :
        A library loading error occurs at application startup.

        REGRESSION. Last worked in version 8u144

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        javafxpackager.exe -makeall -appclass Main
        Run dist\bundles\Main\Main.exe

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        No error.
        ACTUAL -
        A library loading error occurs.

        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        [Error 1]
        Main.exe - System Error
        The program can't start because MSVCR100.dll is missing from your computer. Try reinstalling the program to fix this problem.

        [Error 2]
        Failed to find library.
        ...\Main\runtime\bin\server\jvm.dll

        [Error 3]
        Main.exe
        Failed to locate JNI_CreateJavaVM

        [Error 4]
        Main.exe
        Failed to launch JVM

        (Error 1 is not shown on Windows Server 2016)

        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        import javafx.application.Application;
        import javafx.scene.Group;
        import javafx.scene.Scene;
        import javafx.stage.Stage;

        public class Main extends Application {

            public static void main(String[] args) {
                Application.launch(args);
            }

            @Override
            public void start(Stage stage) {
                final Scene scene = new Scene(new Group(), 640, 480);
                stage.setScene(scene);
                stage.show();
            }
        }
        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        Copy runtime\bin\msvcr100.dll to the folder where Main.exe exists.

        Attachments

          1. JDK8u152_Results.PNG
            55 kB
            Pardeep Sharma
          2. Main.java
            0.4 kB
            Pardeep Sharma

          Issue Links

            Activity

              People

                vdrozdov Victor Drozdov (Inactive)
                webbuggrp Webbug Group
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: