I'm using sbt 0.13 and have issues using the leveldbjni native library under sbt (even after issue #358 has been resolved). A similar issue has already been reported for which sbt 0.13 should provide a solution but it seems it doesn't. So I'm sharing my observations here.
I'm getting an UnsatisfiedLinkError
with the following example application.
build.sbt
name := "example" version := "0.1" scalaVersion := "2.10.2" libraryDependencies += "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.7"
build.properties
sbt.version=0.13.0
Example.scala
import org.fusesource.leveldbjni.internal._ object Example extends App { NativeDB.LIBRARY.load() // loading succeeds new NativeOptions() // UnsatisfiedLinkError under sbt }
I'm using Oracle JDK 1.7 and OS X 10.8.5. Running the example with run-main Example
under sbt gives
[error] (run-main) java.lang.UnsatisfiedLinkError: org.fusesource.leveldbjni.internal.NativeOptions.init()V
whereas running it with
java -cp scala-library.jar:example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
just works fine. The application even runs successfully when Scala is on the bootclasspath:
java -Xbootclasspath/a:scala-library.jar -cp example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
Any ideas why there's an UnsatisfiedLinkError
only under sbt?