私はスカラーでapparatライブラリを使って何かをしようとしています。ライブラリは/ Applications/apparatにあります。コンパイルは正常に行われます。インポートは正常ですが、実行するとこのエラーが発生します。スカラクラスパスミックスアップjava.lang.NoClassDefFoundError
scalac -classpath /Applications/apparat/\* SimpleObject.scala
scala -cp . SimpleObject hello.swf
java.lang.NoClassDefFoundError: apparat/utils/TagContainer$
スクリプト:
import apparat.utils.TagContainer
object SimpleObject {
def main(args : Array[String]) : Unit = {
val tags = TagContainer.fromFile(args(0))
}
}
私はコンパイルするときや、それを実行しているとき、私はどちらか何かを見逃してかなり確信しています。私がコマンドラインインタプリタを使用すると、スクリプトは正常に動作し、何のエラーも出ません。たとえば、これを行うことができます。
scala -cp /Applications/apparat/\*
Welcome to Scala version 2.8.0.RC3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import apparat.utils.TagContainer
import apparat.utils.TagContainer
scala> val tag = TagContainer.fromFile("hello.swf")
tag: apparat.utils.TagContainer = [email protected]
なぜ 'scala'を呼び出すときに'/Applications/apparat/\ * 'をクラスパスに追加していませんか? –
私がscala -cp/Applications/apparat/\ * SimpleObject hello.swfを実行すると、SimpleOBjectが見つかりません。私はそれがそのディレクトリで実行したいスクリプトを探し始めると思います。 – Murgh