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

EXEs produced by the packager lack the manifest settings that the java.exe has

XMLWordPrintable

    • x86
    • other

      FULL PRODUCT VERSION :
      1.8.0_131-b11

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows [Versions 10.0.14393]

      A DESCRIPTION OF THE PROBLEM :
      java.exe contains a manifest file that, amongst other things, sets 'dpi aware' to 'true'. Something like this:

      <?xml version="1.0" encoding="utf-8"?>
      <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
        
        <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
          <asmv3:windowsSettings
               xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <dpiAware>True/PM</dpiAware>
          </asmv3:windowsSettings>
        </asmv3:application>
      </asmv1:assembly>

      Thus when you run an app using java.exe you get correct scaling behaviour on high DPI displays. However if you then package the app into an exe file, this file has no manifest. So 'dpi aware' is not set, and the scaling behaviour is wrong.




      REPRODUCIBILITY :
      This bug can be reproduced always.

      CUSTOMER SUBMITTED WORKAROUND :
      Work around is to manually use the mt.exe tool to copy the manifest from java.exe to your exe.

            herrick Andy Herrick (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: