db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew McIntyre" <mcintyr...@gmail.com>
Subject Re: building Derby on Mac OS X
Date Mon, 03 Jul 2006 05:22:34 GMT
So, I think that setting compile.classpath=${java14compile.classpath}
is definitely the problem here, since I just tried that on my machine
and the build breaks in similar ways to what you described.

On 7/2/06, Ray Kiddy <kiddyr@apple.com> wrote:
> The 1.3 JVM that is on the system
> is deprecated. Really, it cannot be relied on for anything modern.

What the build is looking for is not the 1.3 JVM, but its class
libraries. Derby currently maintains compatibility with JDK 1.3.1
(JDBC 2.0), and so it needs to reference the class libraries to
compile the classes necessary to run Derby on JDK 1.3.1. But, you
should run Ant with a 1.4.2 JVM (for Derby 10.1 or earlier) or with
1.4.2, 1.5, or 1.6 (b86 or later) for Derby 10.2 / trunk in order to
build.

> 1) The build seems to assume that the default JVM is 1.3, but then it
> does not actually build if one uses that setting.

The lowest JVM level that Derby supports is 1.3.1, but you need to run
Ant with a 1.4.2 or later JVM as mentioned above in order to build it.
Perhaps this should be made more explicit in BUILDING.txt.

> compile.classpath=${java14compile.classpath}

should be set to the java13compile.classpath so that the class
libraries for JDK 1.3.1 are picked up for the compilations that
require them. From BUILDING.txt section 2.2:

(1) Derby build environment requires you to install two levels of
    Java Development Kit (JDK) - 1.3.x and 1.4.x as Derby is designed
    to work in JDK1.3.x (JDBC 2.0) and JDK 1.4.x (JDBC 3.0)
    environments. The Derby build is set up such that that most of
    the code is compiled against JDK 1.3.x libraries so that no
    dependencies on JDK 1.4.x classes exist, except for the code
    that only runs in JDK1.4.x. In addition Derby's JDBC 2.0
    implementation must compile against JDBC 2.0 class definitions
    and the JDBC 3.0 implementation against JDBC 3.0 class
    definitions.

Conveniently, Mac OS X already has both 1.3.1 and 1.4.2 installed.
Note that there are some other libraries that need to be downloaded to
build a complete build, and these are mentioned in BUILDING.txt.

Note that when building to target a J2ME environment, that
compile.classpath should actually be set to reference the J2ME
classes, and not the JDK 1.3.1 classes. This isn't your concern, but
it's why there is a difference between compile.classpath and
java13compile.classpath.

So, try setting compile.classpath=${java13compile.classpath} in your
~/ant.properties and let me know if that solves your problem.

thanks,
andrew

Mime
View raw message