Help Understanding Path Issue

Igor Peshansky
Thu Jun 29 22:48:00 GMT 2006

On Wed, 28 Jun 2006, mwoehlke wrote:

> Scott Purcell wrote:
> > I have "CLASSPATHS" and "PATHS" and some "HOME" directories set up.
> > Eg: ANT_HOME value=C:/ant/bin
> I assume you meant "CLASSPATH" and "PATH".

I think he meant "CLASSPATH"s and "PATH"s. :-)

> > When I run ant from a "cmd" window all is good. It picks up the value
> > and runs fine. But I do not want to use the "cmd" prompt, and would
> > like to use cygwin. But when I issue ant I get the dreaded error:
> > Error: JAVA_HOME is not defined correctly. We cannot execute
> > /cygdrive/c/jdk1.5.0_02/bin/java

This is actually a bug in ant -- you want to set JAVA_HOME in such a way
that $JAVA_HOME/bin/java exists (i.e., for the Sun JVM you'd set it to

> > I do not want to change all my HOME, PATH, values because some of the
> > system software uses them as they are. Can I get around this? Is there
> > where it makes sense to use a symbolic link?
> Nope, symlinks will not help you (or at least, they probably won't).
> If the program that looks at a particular environment variable is a
> Cygwin program, then the var should give a POSIX path. Otherwise it
> should give a Windows path. You should only have problems switching
> between the two if you have programs of both flavors looking at the same
> variable (other than PATH which Cygwin handles automagically).

Actually, the list of variables automatically translated by Cygwin was
posted here at some point (it may even be in the FAQ).  At the very least
it's PATH, HOME, and LD_LIBRARY_PATH, but there may be others.

In this particular case, ant is the program that does the translation.
Also, the path is used by the Cygwin program (the shell), so the POSIX
version is the right one.

> Example: I assume you are using a non-Cygwin Java (I don't believe I
> have even heard of a Cygwin JVM, so that seems likely), therefore your
> JAVAHOME should be a Windows path, regardless of what shell (A cygwin
> *sh vs. Windows cmd) you are using.

For Java, there are wrapper scripts that make Java understand some POSIX
paths (i.e., it won't translate paths passed as arguments to your Java
program, but it will translate POSIX paths in properties, CLASSPATH, etc).
Currently, the only way to get them is from CVS[1], but I would appreciate
testing and feedback.  However, you don't need those scripts to run ant.
[1] <>

> Also see 'man cygpath'.

      |\      _,,,---,,_ |
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list