2014-11-02 2 views
4

У меня есть GUI-класс с именем Gui.scala и Eclipse, не обнаруживающий ошибок непосредственно в файле scala. Моя версия Scala - 2.11, и я вручную добавил scala-swing-2.10.4.jar в мой путь сборки в Eclipse. Если я этого не сделаю, Eclipse жалуется, что он не находит библиотеку Swing.Scala NoClassDefFoundError, связанный с Swing

Первые строки моего исходного кода выглядеть следующим образом:

package filmreviews 
import scala.swing._ 
import event._ 
import javax.imageio.ImageIO 
import javax.swing.ImageIcon 
import java.io.File 
import java.awt.image.BufferedImage 
import java.net.URI 
import java.net.URL 
import java.awt.Desktop 
import java.awt.Cursor 
import java.awt.Color 
import javax.swing.border 
import javax.swing.BorderFactory 
import javax.swing.UIManager 
object Gui extends SimpleSwingApplication { 
    def top = new MainFrame { 
     ...more code here... 

Я получаю следующее сообщение об ошибке:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class 

Кроме того, есть длинный список говоря, где в коде ошибка происходит. Только строки, относящиеся к моему собственному коду являются:

at filmreviews.Gui$$anon$3.<init>(Gui.scala:17) 
at filmreviews.Gui$.top(Gui.scala:17) 
at filmreviews.Gui$.top(Gui.scala:16) 

Вот почему я думаю, что это связано с созданием объекта MainFrame. Это также может быть связано с тем, как я вручную добавил библиотеку Swing в путь сборки. Однако я не знаю, что вызывает ошибку или как ее исправить.

+1

кажется мне, как библиотека Scala коллекции не в вашем пути к классам. Вы убедились, что файл jar scala-runtime является частью вашего пути к классам? –

+0

Спасибо за предложение! Другой ответ решил эту проблему. В моем пути к классам он читает, что «Библиотека библиотеки Scala [2.11.4]» и «JRE System Library [JavaSE-1.7]» находятся в разделе Bootstrap Entries. Насколько я понимаю, это означает, что scala-runtime является частью моего класса. –

ответ

7

Если вы используете Scala 2.11, вам понадобится версия scala-swing, построенная для 2.11. 2.10.4 двоично несовместимо с 2.11.

Вы можете найти банку для 2.11-совместимой версии на maven central.

Или для тех, кто использует SBT:

libraryDependencies += "org.scala-lang.modules" %% "scala-swing" % "1.0.1" 
Смежные вопросы