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

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

    Details

    • Subcomponent:
    • Introduced In Version:
    • CPU:
      x86_64
    • OS:
      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

            Issue Links

              Activity

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: