This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: bash wildcard expansion


The answer is that java.exe, like many Win32 tools, expands
the '*' itself. Remember, COMMAND.COM doesn't expand wildcards, so
individual tools have to do it for themselves. To see this, go to a
MS-DOS prompt window and type '*'. You'll get "Bad command or file
name" -- i.e., no such file *. Now type 'java *'. You'll see a
NoClassDefFound exception naming the alphabetically first file in that
directory. Now try 'java "*"'. Now you'll get a NoClassDefFoundError
for * -- i.e., java.exe itself interpreted the quotes.

Now, given this nice explanation, I -still- can't get quite the effect
you want under bash. I expected java \"\*\" to work, but it seems that
in that case java sees the quotes as part pf the argument, and I'm not
clear why this is different that under the MS-DOS prompt.


I think Puttkammer, Roman wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> 
> sorry, my example could't have been worse: i just wanted to
> illustrate that the asterix was being expanded (by the shell?)
> even though it's escaped.
> 
> the problem is: when invoking
> 
> 	java someclass \*
> 
> the \* is being expanded to the list of files in the current
> directory (the class is invoked with a list of filenames rather
> than with a "*".) AFAIK that shouldn't be.
> 
> roman
> 
> > -----Original Message-----
> > From: Dunn-Roberts, Richard [mailto:RICHARD.R.DUNN-ROBERTS@saic.com]
> > Sent: Thursday, December 21, 2000 9:06 PM
> > To: cygwin@cygwin.com
> > Subject: RE: bash wildcard expansion
> > 
> > 
> > It looks to me as if the reason here is that cmlistener.class is being
> > passed to java.  Java does not take the extension.
> > 
> > The correct command is > java cmlistener
> > What is being issued is > java cmlistener.class
> > 
> > Since Java uses the dot as a path separator, it is looking for
> > cmlistener/class.class
> > 
> > As to why it is working in dos, I don't know that answer to that.
> > 
> > I'm curious.  Why do you want to invoke the Java VM with 
> > multiple class
> > files on the command line.  Only the first would get 
> > executed, I think, and
> > the rest would be treated as command line arguments (String 
> > args[]) to the
> > first.
> > 
> > 
> > Richard Dunn-Roberts
> > Science Applications International Corporation
> > 12479 Research Parkway
> > Orlando, Florida, 32826-3248
> > 
> > richard.r.dunn-roberts@saic.com
> > 
> > vox:	(407) 207 2752
> > fax:	(407) 277 5395
> > 
> > 
> > 
> > -----Original Message-----
> > From: Puttkammer, Roman [mailto:roman.puttkammer@multex.com]
> > Sent: Thursday, December 21, 2000 8:40 PM
> > To: 'cygwin@cygwin.com'
> > Subject: bash wildcard expansion
> > 
> > 
> > 
> > I hope i'm not getting flamed for this one, but what am I missing? A 
> > command line argument is being expanded by bash even though 
> > it's escaped.
> > 
> >   /tibrv/src/examples/java# D:/jdk1.3/bin/java.exe \*
> >   Exception in thread "main" java.lang.NoClassDefFoundError:
> > cmlistener/class
> > 
> > "cmlistener.class" is the first filename in the directory.
> > 
> > Same thing if i'm using single quotes to escape. Note that 
> > java.exe does not
> > expand arguments itself; it works as expected from a DOS shell:
> > 
> >   D:\TIBCO\TIBRV\src\examples\java>java "*"
> >   Exception in thread "main" java.lang.NoClassDefFoundError: *
> > 
> > "ls '*'" or "ls \*" works as expected ("ls: *: No such file 
> > or directory".)
> > 
> > roman
> > 
> >   Cygwin DLL version: 1001 / 6
> >   GNU bash, version 2.04.0(1)-release (i586-pc-cygwin)
> > 
> > -- 
> > To pour bottled sauce over salad is to miss the point of 
> > salad altogether.
> >                                      - Fairways, 
> > advertisement for olive oil
> > 
> > This email message is for the sole use  of the intended 
> > recipient(s) and may
> > contain  confidential and  privileged information.  Any 
> > unauthorized review,
> > use,  disclosure or distribution is prohibited.  If you are 
> > not the intended
> > recipient,  please contact the sender by reply email  and 
> > destroy all copies
> > of the original message.
> > Any views expressed in the email message  are those of the 
> > individual sender
> > except  where  the  sender  specifically states  them  to  be 
> >  the views  of
> > Multex.com, Inc.
> > 
> > Roman Puttkammer                                      
> mailto:putt@multex.com
> Multex.com, Inc.                                       http://www.multex.com
> 33 Maiden Lane                                         tel +1 (212) 859 9908
> New York, NY 10038                                     fax +1 (212) 859 9810
> 
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
> 
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
> 
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
> 



---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9012                  ejfried@ca.sandia.gov
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]