我正在使用 sbt 0.13 并且在使用 sbt 下的leveldbjni本机库时遇到问题(即使在问题 #358已解决之后)。已经报告了一个类似的问题,sbt 0.13 应该提供解决方案,但似乎没有。所以我在这里分享我的观察。
我得到UnsatisfiedLinkError
了以下示例应用程序。
构建.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
例子.scala
import org.fusesource.leveldbjni.internal._ object Example extends App { NativeDB.LIBRARY.load() // loading succeeds new NativeOptions() // UnsatisfiedLinkError under sbt }
我正在使用 Oracle JDK 1.7 和 OS X 10.8.5。在 sbt 下运行示例run-main Example
给出
[error] (run-main) java.lang.UnsatisfiedLinkError: org.fusesource.leveldbjni.internal.NativeOptions.init()V
同时运行它
java -cp scala-library.jar:example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
只是工作正常。当 Scala 在 bootclasspath 上时,应用程序甚至可以成功运行:
java -Xbootclasspath/a:scala-library.jar -cp example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
任何想法为什么UnsatisfiedLinkError
只有在 sbt 下?