[kepler-dev] build.xml and JAVA_HOME

Christopher Brooks cxh at eecs.berkeley.edu
Fri Apr 18 15:48:29 PDT 2008

Hi Aaron,

You modified build.xml with this log message:

  Added a condition to the preinit target to make sure that the
  environment variables are set.  Otherwise, the build fails with a

The diff is: 

bash-3.00$ cvs diff -r 1.380 -r 1.381 build.xml
Index: build.xml
RCS file: /cvs/kepler/build.xml,v
retrieving revision 1.380
retrieving revision 1.381
diff -r1.380 -r1.381
<  *     '$Author: crawl $'
<  *       '$Date: 2008/04/02 21:09:41 $'
<  *   '$Revision: 1.380 $'
>  *     '$Author: aschultz $'
>  *       '$Date: 2008/04/17 23:45:07 $'
>  *   '$Revision: 1.381 $'
>   	<condition property="env_ok">
>   	   <and>
>   	     <isset property="env.PTII"/>
>   	     <isset property="env.KEPLER"/>
>   	     <isset property="env.JAVA_HOME"/>
>   	   </and>
>   	</condition>
>   	<fail message="Environment not initialized: PTII=${env.PTII} KEPLER=${env.KEPLER} JAVA_HOME=${env.JAVA_HOME}" unless="env_ok"/>

This means that we are now requiring JAVA_HOME be set.

It looks like the automatic build is failing, see

If JAVA_HOME is not set, then I get this error message:

bash-3.00$ ant run-dev
Buildfile: build.xml


/export/home1/cxh/src/kepler/build.xml:126: Environment not initialized: PTII=/home/eecs/cxh/ptII KEPLER=/home/eecs/cxh/src/kepler JAVA_HOME=${env.JAVA_HOME}

Total time: 1 second

I looked at this message and had no clue that I had to set JAVA_HOME.
Perhaps the error message could be more explicit, perhaps each
variable could be checked separately?

However, it it really necessary that JAVA_HOME be set?  Can't we
determine this programmatically?  The problem is that if the
java in the user's path and JAVA_HOME are different, then there
will be problems.

In Ptolemy II, we compile and invoke ptII/config/JavaHome.java,
which will tell us the value of the java.home property.

What was the error message that you were seeing?  Did it have
to do with compiling PtDoclet.java, which requires

I'm not sure how best to handle this in ant, but is there
a way that ant can compile a Java program and use that value?

I'm somewhat resistant to have the user set JAVA_HOME, I've
found that it ends up causing no end of support problems.

BTW - The ant docs say that JAVA_HOME must be set, but the reality
is that ant works ok without JAvA_HOME being set.  
IMHO - it is a bug in ant that I'm asked to set JAVA_HOME.


More information about the Kepler-dev mailing list