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

javac cannot find java file if Windows short path name is passed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 7u76, 8u31
    • tools
    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      javac 1.7.0_45

      A DESCRIPTION OF THE PROBLEM :
      f I have for instance TestClass.java in windows it's shortname will be TESTCL~1.JAV (If 8.3 notation is enabled on windows machine all files will have two names - it's real name and one short name for compatibility with older windows versions. Shortnames have maximum 8 letters name and 3 letters extension).

      Java is aware of that.Or at least seems to be.After the java installation there appears .jav extension description in the registry:

      HKEY_CLASSES_ROOT\.jav

      with the same persistent handler as .java file:

      {5e941d80-bf96-11cd-b579-08002b30bfeb}
      (it's the handler for plain text)

      When I try to pass to the javac a java file with its short name I receive the following error:

      javac: invalid flag: TESTCL~1.JAV
      Usage: javac <options> <source files>
      use -help for a list of possible options
      I.e. does not find file at all despite it exists

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.7.0_45"
      Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
      Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      create a simple .java file i.e TestClass.java . Find its short name with "dir /x" command and pass its short name to javac command.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      file should be compiled.After all it exists and its valid java file.
      ACTUAL -
      File not compiled:

      javac: invalid flag: TESTCL~1.JAV
      Usage: javac <options> <source files>
      use -help for a list of possible options

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      javac: invalid flag: TESTCL~1.JAV
      Usage: javac <options> <source files>
      use -help for a list of possible options

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------



      public class TestClass
      {
          public static void main(String args[])
          {
             System.out.println("###");
          }
      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      use the long name.

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: