私はsbt 0.13を使用しています。issue #358が解決された後でも、sbtでleveldbjniネイティブライブラリを使用する際に問題があります。 A similar issueは既に報告されており、sbt 0.13は解決策を提供すべきだが、そうではないようだ。だから私はここで私の観察を共有している。sbtでネイティブライブラリとのUnsatisfiedLinkError
次のアプリケーション例でUnsatisfiedLinkError
が表示されています。
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
-
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を使用しています。
java -cp scala-library.jar:example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
だけで正常に動作して、それを実行しているのに対し、SBT下run-main Example
で例を実行すると、
[error] (run-main) java.lang.UnsatisfiedLinkError: org.fusesource.leveldbjni.internal.NativeOptions.init()V
を与えます。 Scalaはブートクラスパス上にあるときにアプリケーションでも正常に実行:
java -Xbootclasspath/a:scala-library.jar -cp example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
UnsatisfiedLinkError
のみSBTの下にありますなぜ任意のアイデア?
これは単なる回避策ですが、[フォーク](http://www.scala-sbt.org/release/docs/Detailed-Topics/Forking.html)を試してみましたか? – gourlaysama
@gourlaysamaはい、それは実際には機能しますが、あなたが言ったように、それは単なる回避策です。とにかくありがとう。 –
また、フォークの回避策は、以前のバージョンではなく、sbt 0.13でのみ動作することを追加する必要があります。 –