0
我創建了一個簡單的項目。在MongoDB中使用Scala - java.lang.NoClassDefFoundError:com/mongodb/DBObject
「sbt run」正常工作。
我運行「sbt package」後出現jar文件,但它不起作用。
$ scala target/scala-2.9.2/hello_2.9.2-0.1.jar
以下錯誤occures:
java.lang.NoClassDefFoundError: com/mongodb/DBObject
這裏是我的文件:
Hello.scala
package greeter
object Hello extends App {
import com.mongodb.casbah.Imports._
val mongoClient = MongoClient()
println("Connected to MongoDB")
val collection = mongoClient("test")("foo")
val doc = MongoDBObject("msg" -> "Hi from Scala!")
collection.insert(doc)
println("Doc inserted");
}
build.sbt
name := "hello"
mainClass := Some("greeter.Hello")
version := "0.1"
scalaVersion := "2.9.2"
libraryDependencies += "org.mongodb" % "casbah_2.9.2" % "2.5.0"
resolvers += "snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
resolvers += "releases" at "https://oss.sonatype.org/content/groups/scala-tools"
謝謝。所以我需要將lib_managed文件夾中的所有jar文件複製到lib文件夾中?有沒有一個簡單的命令,或者我需要使用一些棘手的bash命令?我該如何將所有這些罐子結合在一起? – un1t 2013-02-09 05:34:19
其實你可以直接使用的lib_managed文件夾: '斯卡拉-cp「lib_managed/*」目標/斯卡拉-2.9.2/hello_2.9.2-0.1.jar' 或者你可以複製整個文件夾: 'cp -rf lib_managed lib' – 2013-02-09 06:42:33
我試過'-cp「lib_managed/*」',但它不起作用。同樣的錯誤發生在java.lang.NoClassDefFoundError:com/mongodb/DBObject中。比我複製所有jar到lib filder並使用'-cp「lib/*」',並且它工作。 – un1t 2013-02-09 06:49:38