Name: rmT116609 Date: 04/23/2002
FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
FULL OPERATING SYSTEM VERSION : Windows XP
A DESCRIPTION OF THE PROBLEM :
If the argument * is given, the outcome of the argument-array is strange.
trye args.length and you'll be suprised.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile given source
2. Use 1 argument: okay (The outcome should be 1 and that's good)
3. Use 2 arguments : okay * (The outcome should be 2 but is something weird)
EXPECTED VERSUS ACTUAL BEHAVIOR :
See reproducing steps.
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test
{
public static void main( String[] args )
{
System.out.println("Len: " + args.length);
System.out.println("args: " + args);
System.out.println("args[ 0 ]: " + args[ 0 ]);
System.out.println("args[ 1 ]: " + args[ 1 ]);
}
}// end of class: Test
---------- END SOURCE ----------
Output:
C:\> java Test okay *
Len: 562
args: [Ljava.lang.String;@765291
args[ 0 ]: okay
args[ 1 ]: 132003
Workaround:
C:\> java Test okay "*"
Len: 2
args: [Ljava.lang.String;@eee36c
args[ 0 ]: okay
args[ 1 ]: *
I think the work around is no good since I'm not able to test if the end user used quotations are not.
According to the doc's, the arguments passed via the command line are strings.
(see : http://java.sun.com/docs/books/tutorial/essential/attributes/cmdLineArgs.html
)
There is no mentioning the quotation or the issue with the asterisk.
(Review ID: 145719)
======================================================================
FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
FULL OPERATING SYSTEM VERSION : Windows XP
A DESCRIPTION OF THE PROBLEM :
If the argument * is given, the outcome of the argument-array is strange.
trye args.length and you'll be suprised.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile given source
2. Use 1 argument: okay (The outcome should be 1 and that's good)
3. Use 2 arguments : okay * (The outcome should be 2 but is something weird)
EXPECTED VERSUS ACTUAL BEHAVIOR :
See reproducing steps.
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Test
{
public static void main( String[] args )
{
System.out.println("Len: " + args.length);
System.out.println("args: " + args);
System.out.println("args[ 0 ]: " + args[ 0 ]);
System.out.println("args[ 1 ]: " + args[ 1 ]);
}
}// end of class: Test
---------- END SOURCE ----------
Output:
C:\> java Test okay *
Len: 562
args: [Ljava.lang.String;@765291
args[ 0 ]: okay
args[ 1 ]: 132003
Workaround:
C:\> java Test okay "*"
Len: 2
args: [Ljava.lang.String;@eee36c
args[ 0 ]: okay
args[ 1 ]: *
I think the work around is no good since I'm not able to test if the end user used quotations are not.
According to the doc's, the arguments passed via the command line are strings.
(see : http://java.sun.com/docs/books/tutorial/essential/attributes/cmdLineArgs.html
)
There is no mentioning the quotation or the issue with the asterisk.
(Review ID: 145719)
======================================================================
- relates to
-
JDK-6268383 Class-path wildcards, jplan feature 082
-
- Closed
-
-
JDK-4342394 Compilation of Multiple java files filed
-
- Resolved
-
-
JDK-6328875 Multiple command line wildcard expansion confuses Windows users
-
- Closed
-
-
JDK-5036373 Tool doc for 'java' should document Windows-specific command arg processing
-
- Closed
-