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.
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.