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

Windows VM dll loading is opaque, registry settings undocumented

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.3.1
    • docs
    • rc1
    • x86
    • windows_2000



      Name: rl43681 Date: 11/15/2001


      C:\apps>jdk118\bin\java -version
      java version "1.1.8"

      C:\apps>jdk1.3.1\bin\java -version
      java version "1.3.1_01"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
      Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)

      C:\apps>jdk122_009\bin\java -version
      java version "1.2.2"
      Classic VM (build JDK-1.2.2_009, native threads, symcjit)

      C:\apps>jdk130_03\bin\java -version
      java version "1.3.0_03"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_03)
      Java HotSpot(TM) Client VM (build 1.3.0_03, mixed mode)

      C:\apps>jdk14b2\bin\java -version
      java version "1.4.0-beta2"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta2-b77)
      Java HotSpot(TM) Client VM (build 1.4.0-beta2-b77, mixed mode)


      The java executable appears not to be the determinant of the VM dll's used, and
      it is not clear how to set up the registry for correct behavior.

        To see the problem:
      - I had J2SE 1.3.1 installed.
      - To regress a bug, I installed J2SE 1.3.0. This updated registry keys under
      HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft such that the "current version" was
      reported as 1.3.0.
      - Since I would like the default version (e.g., when launching jars) to be
      1.3.1, I tried to set the current version to 1.3.1. That caused the VM to
      report that "1.3 is required" when I pointed at the 1.2.2 java.exe.

      So what I'd like: mainly to be absolutely sure which version is running on a
      machine which has multiple versions, including multiple micro and update
      versions.

      Perhaps that means documenting the registry setting and the dll algorithm. It
      appears that the "current version" is a major version (1.3), and that in the
      major version key a micro version and update version specify that actual VM
      invoked. However, when I set this up for both the JRE and the JDK, I got the
      error mentioned above, suggesting there is another registry key somewhere which
      is set by the install program.
      - Alternatively, I'd like to be able to remove all registry keys and have
      the .exe determine the .dll's by locality

      Thanks -
      Wes
      P.S. - in case it helps, following are the registry settings
      Windows Registry Editor Version 5.00

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft]

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]
      "CurrentVersion"="1.3"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.1]
      "JavaHome"="C:\\apps\\jdk118"
      "MicroVersion"="8"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.2]
      "JavaHome"="c:\\apps\\jdk122_009"
      "MicroVersion"="2"
      "UpdateVersion"="009"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.3]
      "JavaHome"="c:\\apps\\jdk13"
      "MicroVersion"="1"
      "CurrentVersion"="1.3"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.3.0_03]
      "JavaHome"="c:\\apps\\jdk130_03"
      "MicroVersion"="0"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.3.1]
      "JavaHome"="C:\\apps\\jdk1.3.1"
      "MicroVersion"="1"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.3.1_01]

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.4]
      "JavaHome"="C:\\apps\\jdk14b2"
      "MicroVersion"="0"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.4.0]
      "JavaHome"="C:\\apps\\jdk14b2"
      "MicroVersion"="0"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in]

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.2]
      "JavaHome"="C:\\apps\\jre122_009"
      "RuntimeLib"="C:\\apps\\jre122_009\\bin\\classic\\jvm.dll"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.3]
      "JavaHome"="C:\\apps\\jbuilder4\\jdk1.3\\jre"
      "RuntimeLib"="C:\\apps\\jbuilder4\\jdk1.3\\jre\\bin\\classic\\jvm.dll"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.3.0_03]
      "JavaHome"="C:\\Program Files\\JavaSoft\\JRE\\1.3.0_03"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.3.1_01]
      "JavaHome"="C:\\Program Files\\JavaSoft\\JRE\\1.3.1"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
      "CurrentVersion"="1.3"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.2]
      "JavaHome"="C:\\apps\\jre122_009"
      "MicroVersion"="2"
      "UpdateVersion"="009"
      "RuntimeLib"="C:\\apps\\jre122_009\\bin\\classic\\jvm.dll"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.3]
      "JavaHome"="C:\\Program Files\\JavaSoft\\JRE\\1.3.0_03"
      "MicroVersion"="0"
      "RuntimeLib"="C:\\Program Files\\JavaSoft\\JRE\\1.3.0_03\\bin\\hotspot\\jvm.dll"
      "UpdateVersion"="000"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.3.0_03]
      "JavaHome"="C:\\Program Files\\JavaSoft\\JRE\\1.3.0_03"
      "MicroVersion"="0"
      "RuntimeLib"="C:\\Program Files\\JavaSoft\\JRE\\1.3.0_03\\bin\\hotspot\\jvm.dll"

      [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.3.1]
      "JavaHome"="C:\\Program Files\\JavaSoft\\JRE\\1.3.1"
      "MicroVersion"="1"
      "RuntimeLib"="C:\\Program Files\\JavaSoft\\JRE\\1.3.1\\bin\\hotspot\\jvm.dll"
      (Review ID: 135566)
      ======================================================================

            asommere Alan Sommerer (Inactive)
            rlewis Roger Lewis (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: