2010-11-18 19 views
3

sbtをインストールして、Scalaバージョン2.8をUbuntuで使用することを試みました。 (私は現在、バージョン2.7を使用しています。)Ubuntuでsbtを実行しようとしています。 (エラー:java.lang.NoClassDefFoundError:scala/ScalaObject)

私は次の出力を得る端子からsbt実行します。私は間違って何をやってる

$ sbt 
Project does not exist, create new project? (y/N/s) y 
Name: HelloWorld 
Organization: org 
Version [1.0]: 
Scala version [2.7.7]: 
sbt version [0.7.4]: 
Getting Scala 2.7.7 ... 
:: retrieving :: org.scala-tools.sbt#boot-scala 
confs: [default] 
2 artifacts copied, 0 already retrieved (6214kB/279ms) 
java.lang.NoClassDefFoundError: scala/ScalaObject 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at xsbt.boot.Provider$.classMissing$1(Provider.scala:71) 
at xsbt.boot.Provider$$anonfun$getMissing$1.apply(Provider.scala:72) 
at xsbt.boot.Provider$$anonfun$getMissing$1.apply(Provider.scala:72) 
at scala.List.filter(List.scala:859) 
at xsbt.boot.Provider$.getMissing(Provider.scala:72) 
at xsbt.boot.Provider$initialize.call(Provider.scala:45) 
at xsbt.boot.Provider$initialize.call(Provider.scala:32) 
at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:63) 
at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:67) 
at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:67) 
at xsbt.boot.Using$.withResource(Using.scala:11) 
at xsbt.boot.Using$.apply(Using.scala:10) 
at xsbt.boot.Locks$GlobalLock.withFileLock(Locks.scala:67) 
at xsbt.boot.Locks$GlobalLock.liftedTree1$1(Locks.scala:45) 
at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:45) 
at xsbt.boot.Locks$.apply(Locks.scala:31) 
at xsbt.boot.Provider$class.$init$(Provider.scala:31) 
at xsbt.boot.Launch$ScalaProvider.<init>(Launch.scala:80) 
at xsbt.boot.Launch$$anonfun$1.apply(Launch.scala:72) 
at xsbt.boot.Launch$$anonfun$1.apply(Launch.scala:72) 
at xsbt.boot.Cache.newEntry(Cache.scala:17) 
at xsbt.boot.Cache.getFromReference(Cache.scala:13) 
at xsbt.boot.Cache.apply(Cache.scala:12) 
at xsbt.boot.Launch.getScala(Launch.scala:73) 
at xsbt.boot.Launch$.run(Launch.scala:48) 
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:42) 
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:42) 
at xsbt.boot.Launch$.launch(Launch.scala:57) 
at xsbt.boot.Launch$.explicit(Launch.scala:42) 
at xsbt.boot.Launch$.initialized(Launch.scala:38) 
at xsbt.boot.Launch$.parsed(Launch.scala:31) 
at xsbt.boot.Launch$.configured(Launch.scala:21) 
at xsbt.boot.Launch$.apply(Launch.scala:16) 
at xsbt.boot.Launch$.apply(Launch.scala:13) 
at xsbt.boot.Boot$.runImpl(Boot.scala:24) 
at xsbt.boot.Boot$.run(Boot.scala:19) 
at xsbt.boot.Boot$.main(Boot.scala:15) 
at xsbt.boot.Boot.main(Boot.scala) 
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
... 62 more 
Error during sbt execution: java.lang.NoClassDefFoundError: scala/ScalaObject 

任意のアイデア?

+0

で説明したように、あなたの 'sbt'スクリプトを定義した方法を追加してください

  1. ~/.m2/repository
  2. ~/.ivy2/cache
  3. project/boot

を、確実にそのjarファイルは 'sbt'と同じディレクトリの中にあります。 –

答えて

2

$SCALA_HOMEの設定についてあなたのアイデアを提供します。 SBTが独自にScalaを管理しているので、私が提案しているのはのScalaパッケージを削除したことです。

+0

それは私のために働いた。今は 'scala'とタイプすることで素晴らしいスケーラread/eval/print-loopを得ることはできません。私は簡単にsbtを介してスカラー "コンソール"を起動できますか? (最初にプロジェクトを作成するとできますが、scalaを起動するには余計なもののようです) – aioobe

+0

@aioobe Scalaを手動でインストールし、scala-langからダウンロードしてから、あなたのPATHに追加してみてくださいホームプロフィール。なぜUbuntuのパッケージが問題を引き起こしているのか分かりませんが、私はSBTの実行に問題がなく、手作業でScalaをインストールしているので、普通のことをしているに違いありません。 –

+0

Aha。それは良いアイデアかもしれません。先端に感謝します。 – aioobe

0

$SCALA_HOME環境変数を正しく設定しましたか?すべて(

は、私が(しかし、Scalaのと、直接ではなくSBTで、ページの一番下) Conky GUI Ubuntu project having a similar issueを見て、ここで彼らは今を確認するために使用しているスクリプトと設定されたすべてのスカラ座に関する変数でありますこのスクリプトは、おそらくあなたのsbtスクリプトには関係ありませんが、それは正しくないScalaのバージョンが使用されている場合、このエラーが発生し

#!/bin/bash 

set -e 

#-----------------------------------# 
#    Functions    # 
#-----------------------------------# 

function copy_variables_file { 
    # Copying variables.xml to ~/.conkygui 
    if [ ! -d ~/.conkygui ]; then 
     mkdir -v ~/.conkygui 
    fi 
    cp -vu /usr/share/doc/conkygui/variables.xml ~/.conkygui 
} 

function get_scala_home { 
    # check if $SCALA_HOME is set 
    if [ -z $SCALA_HOME ]; then 
     # try to find it at common locations 
     dists=('Fedora' 'Ubuntu') 
     paths=('/usr/share/scala' '/usr/share/java') 
     for indx in 0 1 
     do 
      SCALA_HOME=${paths[$indx]} 
      if [ -d $SCALA_HOME ]; then 
       break 
      fi 
      SCALA_HOME='' 
     done 
    fi 

    # check if $SCALA_HOME could be found 
    if [ -z $SCALA_HOME ]; then 
     echo '$SCALA_HOME is not set' 
     exit 2 
    else 
     echo $SCALA_HOME 
     return 0 
    fi 
} 

function get_scala_library_path { 
    SCALA_HOME=$1 
    scala_library=$SCALA_HOME'/scala-library.jar' 
    if [ -f $scala_library ] ; then 
     echo $scala_library 
     return 0 
    fi 
    # try with lib folder 
    scala_library=$SCALA_HOME'/lib/scala-library.jar' 
    if [ -f $scala_library ] ; then 
     echo $scala_library 
     return 0 
    else 
     echo 'error: scala-library.jar could not be found'; 
     exit 1 
    fi 
} 

function get_classpath { 
    SCALA_HOME=$1 
    # Except for Scala the required libraries come 
    # with Conky GUI and are located in the "lib" folder. 
    lib_folder='/usr/share/conkygui' 
    bsaf=$lib_folder'/lib/bsaf-1.9-RC3.jar' 
    vldocking=$lib_folder'/lib/vldocking-3.0.0.jar' 
    conkygui=$lib_folder'/conkygui.jar' 
    libs=$bsaf':'$vldocking':'$conkygui 
    scala_library=`get_scala_library_path $SCALA_HOME` 
    classpath=$libs':'$scala_library 
    echo $classpath 
} 

#-------------------------------# 
#    RUN    # 
#-------------------------------# 

copy_variables_file 

SCALA_HOME=`get_scala_home` 
echo 'SCALA_HOME: '$SCALA_HOME 

classpath=`get_classpath $SCALA_HOME` 
echo 'CLASSPATH: '$classpath 

# start Conky GUI 
java -cp $classpath controllers.ConkyGUI 

exit $? 
+1

SBTは独自のScalaをインストールします。この問題は、スカラがインストールされているために発生する可能性があります。 –

関連する問題