Build Instructions for GDAL/OGR In Java (Windows)
Note that OSGeo4W includes a gdal-java package and a Java runtime making it fairly easily to build local Java applications using GDAL. The following instructions describe how to build the Java bindings from scratch.
Install an appropriate version of SWIG for windows. GDAL/OGR's Java bindings correct operation are fairly sensitive to the version of SWIG used. Version 1.3.39 is appropriate for GDAL/OGR 1.8.0. A Windows version with a pre-built executable is available, so compiling isn't necessary.
OSGeo4W has a "swig" package which will install a suitable version of swig in C:\OSGeo4W\apps\swigwin.
Install the latest version of the Java SE Development Kit
Make sure you are getting the "JDK", not just the runtime environment. The "SE" (standard edition?) is fine, no need for "EE" (enterprise edition).
Install Apache Ant
Binary distributions are available, so compiling isn't necessary.
Download and Configure GDAL
Follow normal steps to configure GDAL by modifying <gdal-dir>\nmake.opt. In addition to normal steps ensure that the SWIG, JAVA and ANT related definitions are set appropriately. Perhaps something like:
JAVA_HOME = "C:\Program Files\Java\jdk1.6.0_23" JAVADOC=$(JAVA_HOME)/bin/javadoc JAVAC=$(JAVA_HOME)/bin/javac JAVA=$(JAVA_HOME)/bin/java JAR=$(JAVA_HOME)/bin/jar JAVA_INCLUDE=-I$(JAVA_HOME)\include -I$(JAVA_HOME)\include\win32 ANT_HOME=C:\apache-ant-1.8.2 SWIG=C:\OSGeo4W\apps\swigwin\swig.exe
See BuildingOnWindows for details on configuring and building GDAL on windows.
nmake /f makefile.vc
Build Java Bindings
This step will run SWIG to generate the Java bindings (it will use nmake/cl.exe to build the C++ side of the Java bindings and ANT/javac to compile the java side of the bindings).
cd swig nmake /f makefile.vc java
The result, in the gdal/swig/java directory, should be the following files: gdal.jar, gdalconstjni.dll, gdaljni.dll, ogrjni.dll and osrjni.dll.
Test Sample Application
First, ensure that java.exe and javac.exe are available in your path and that any DLLs on which GDAL depends are in your path.
cd swig\java\apps copy ..\..\..\*.dll copy ..\*.dll javac -classpath ..\gdal.jar;. gdalinfo.java java -classpath ..\gdal.jar;. gdalinfo
You should get a usage message, or add a filename to the end of the last command to see a gdalinfo style report on the file.
The jni dll's can be installed somewhere appropriate, often wherever the main GDAL DLL (ie gdal18.dll) goes.
The gdal.jar will need to be in the class path.
It may be desirable to modify the CLASSPATH globally. This can be done like this:
- In the Control Panel, open up System. Switch to the Advanced tab and click on Environmental Variables.
- In the System Variables pane, look for CLASSPATH. If it exists, click on "Edit" and ensure that "." and "..\gdal.jar" are included. Individual items are separated by colons. If CLASSPATH does not exist, click on "New" and add CLASSPATH with the same two locations.