こんにちは。
SpatiaLite 使用例として、"Language bindings: Java / JDBC " (SpatiaLite Cookbook) を見つけたので、そのソースを動かしてみました(SpatialiteSample.java と SpatialiteThreads.java)。
準備として下記をインストールしました(homebrew 利用)。
$ brew install sqlite libspatialite
$ brew cask install java
$ wget https://bitbucket.org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3.16.1.jar
実行は、
$ javac -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteSample.java
$ java -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteSample
SQLite version: 3.16.1
SpatiaLite version: 4.3.0a
target CPU: x86_64-apple-darwin15.6.0
> Inserted 100000 entities of type POINT SRID=4326
> Inserted 100000 entities of type LINESTRING SRID=4326
> Inserted 100000 entities of type POLYGON SRID=4326
$
$ ls -ld spatialite-test.sqlite
$ javac -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteThreads.java
$ java -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteThreads
start: Slot #0 Thread #0
start: Slot #2 Thread #2
start: Slot #1 Thread #1
...
stop: Slot #25 Thread #991
stop: Slot #19 Thread #997
stop: Slot #57 Thread #1000
$
もしも sqlite + spatialite の動作に問題がある場合は、まずは下記のようにチェックすると良いようです。
$ SQLITE3_VERSION=`brew info sqlite | grep /usr/local/Cellar/sqlite | awk '{print $1}'`
$ SQLITE3=${SQLITE3_VERSION}/bin/sqlite3
$ echo $SQLITE3
$ $SQLITE3 -version
$ ( \
echo "SELECT load_extension('mod_spatialite');" \
echo "SELECT sqlite_version();" \
echo "SELECT spatialite_version();" \
echo "SELECT spatialite_target_cpu();" \
) | $SQLITE3
$