Hey all,<div><br></div><div>QUICK VERSION: <br><div>When I build the java bindings for gdal, what native dependencies do I need to transfer over to another machine (with an identical install location) to get them to run?</div>

<div><br></div><div>LONG VERSION:</div><div>I&#39;m working on an application that requires the java bindings for gdal 1.8.0 to be packaged up with the app, along with the native libraries. Now! I&#39;ve actually accomplished this on Mac OS X -- rather than building from source on each machine, I was able to pull the macports version of gdal using</div>

<div><br></div><div>sudo port install gdal +hdf4 +universal</div><div><br></div><div>then build from source, with --prefix=/opt/local, or the location of that macports variant. Once the bindings had the proper location, I was able to bundle them up inside my jar file and distribute them to other machines. (As long as the *.dylib files are on java&#39;s library path, all is well.)</div>

<div><br></div><div>My issue is, I&#39;m having a bit of trouble doing the same thing with linux. I&#39;ve installed gdal-bin with</div><div><br></div><div>sudo apt-get gdal-bin</div><div><br></div><div>And can verify that gdalinfo works, for one of the HDF files I need to process. Good news there.</div>

<div><br></div><div>I then built the java bindings from source using</div><div><br></div><div><div>./configure --prefix=/usr --with-threads --disable-netcdf --disable-fortran --with-hdf4=/usr</div><div>make</div></div><div>

cd swig/java</div><div>make</div><div><br></div><div>(After modifiying swig/java/java.opt to point to my native java install.)</div><div><br></div><div>To make these bindings work on some other machine, I know that I need the four *.so files -- after I run &quot;make&quot; inside gdal/swig/java, though, I end up with three versions of each file:</div>

<div><br></div><div>libgdalconstjni.so</div><div>libgdalconstjni.so.1.15.0</div><div><meta charset="utf-8"><div>libgdalconstjni.so.1</div></div><div><br></div><div>etc.</div><div><br></div><div>Now, it looks like the first two (.so and .so.1.15.0) are symlinked to the *.so.1 file -- if I try to bundle either of these and run my project on a fresh machine (without the built source, but after running &quot;sudo apt-get gdal-bin&quot;) and use them, I get</div>

<div><br></div><div>java.lang.UnsatisfiedLinkError: /root/forma-hadoop/lib/native/libgdaljni.so: libgdal.so.1: cannot open shared object file: No such file or directory</div><div><br></div><div>I&#39;m stuck, here. I don&#39;t know what libgdal.so.1 is, or where it sits. Do I need to bundle this up as well? More generally, what files do the bindings depend on to actually link to the gdal binaries?</div>

<div><br></div><div>(My final step, hopefully the working step, is to bundle up the (*.so.1) files, clean, and try again. This worked with OS X, but on OS X I never saw a reference to &quot;libgdal&quot;, without the jni extension.)</div>

<div><br></div><div>Sorry for such a long email. I plan on doing a blog post detailing all of this work, and putting the final jar file, with OS X and linux dependencies for 1.8, up in a maven repository after this all works out.</div>

</div><div><br></div><div>Best,<br></div><div>Sam</div>