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

Java Web Start behaves differently on Windows Terminal Server wrt file "deployment.config"

XMLWordPrintable

    • b03
    • x86
    • windows_2003
    • Not verified

      Java Web Start behaves differently on Windows Terminal Server as
      compared to regular Windows environment with respect to system level
      "deployment.config" file.
      On regular Windows environment, "deployment.config" file is found in
      "<Windows Directory>\Sun\Java\Deployment\deployment.config".
      On Windows Terminal Server however, "deployment.config" file is found
      in "\Dokumente und Einstellungen\<User-ID>\Windows\Sun\Java\Deployment".
      So, "javaws.exe" is not "Terminal-Services-aware".


      Please find below some more details concerning the problem.

      1. Sun docs
      -----------
      According to Sun's Java Web Start documentation, the optional file
      "deployment.config" is expected to be found in two distinct locations
      on Windows operating systems:

      See http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/properties.html
      or
      See http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html
      ----------------------------------------------------
      System Level
      ------------
      [ ... ] If deployment.config exists, it is located either here

          Operating System Location
          Windows <Windows Directory>\Sun\Java\Deployment\deployment.config

       or here

          Operating System Location
          Windows ${deployment.java.home}\lib\deployment.config

      (${deployment.java.home} is the location of the jre from which
      the deployment products are run. Deployment products include
      Java Web Start, Java Plug-in, Java Control Panel ...)
      ----------------------------------------------------


      2. Windows API: GetWindowsDirectory()
      -------------------------------------
      According to Microsoft's documentation, the function GetWindowsDirectory()
      results in different return values, depending on whether the function is
      called under a regular Windows environment or under a Windows Terminal
      Server environment.

      Please see MSDN article
      http://msdn.microsoft.com/en-us/library/ms724454(VS.85).aspx
      ------------------------------------------------------------
      Remarks
      [ ... ]
      Terminal Services: If the application is running in a Terminal Services
         environment, each user has a private Windows directory. There is also a
         shared Windows directory for the system. If the application is
         Terminal-Services-aware (has the
         IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE flag set in the image
         header), this function returns the path of the system Windows directory,
         just as the GetSystemWindowsDirectory function does. Otherwise, it
         retrieves the path of the private Windows directory for the user.
      ------------------------------------------------------------

      Please find attached demo program "getsystemhome.exe", which is not
      "Terminal-Services-aware" ("getsystemhome.c" is attached as well):

      2.1 Windows XP SP2
      ------------------
      C:\> getsystemhome.exe
      kernel32.dll found
      GetSystemWindowsDirectory API call is available, running Windows 2000 or
      higher
      GetWindowsDirectory C:\WINDOWS
      GetSystemWindowsDirectory C:\WINDOWS
      running in a pure Windows System environment

      C:\>

      2.2 Windows Terminal Server
      ---------------------------
      On Microsoft Windows Server 2003 R2 SP2 running as "Administrator" we get:

      C:\> getsystemhome.exe
      kernel32.dll found
      GetSystemWindowsDirectory API call is available, running Windows 2000 or higher
      GetWindowsDirectory C:\Documents and Settings\Administrator\WINDOWS
      GetSystemWindowsDirectory C:\WINDOWS
      running in a Terminal Server environment

      C:\>


      3. Java Web Start
      -----------------
      So, on a Windows Terminal server Java Web Start "javaws.exe" does not
      find file "deployment.config", when it is placed as suggested by the
      docs in directory
      "<Windows Directory>\Sun\Java\Deployment\deployment.config".

      This is what the problem is about.

            vkarnauk Vladislav Karnaukhov
            thlenz Thomas Lenz (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: