2013-03-10 51 views
0

我尝试编译这段代码当我运行scala应用程序时,如何解决“NoClassDefFoundError:midterm/Main”?

import java.awt.Color 
import javax.swing.JButton 
import javax.swing.JPanel; 


object Main{ 
    var panel = new JPanel 
    var btn= new JButton 
    def main(args:Array[Int]):Unit={ 
     btn.setBounds(80,80,80,80) 
     btn.setBackground(Color.BLUE); 
     panel.add(btn); 
    } 
} 

当我输入scalac Main.scala已成功创建的类文件,但斯卡拉主要 后有像

java.lang.NoClassDefFoundError: midterm/Main 
Caused by: java.lang.ClassNotFoundException: midterm.Main 
    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 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: midterm.Main. Program will exit. 
Exception in thread "main" Java Result: 1 

如何解决它的输出?

回答

2

这似乎是一个包装问题。确保Main.scala位于名为midterm的目录中。然后使用:

scalac midterm/Main.scala 

从包含midterm子目录的目录。此外,还要确保该文件包含package声明:

package midterm 

而且你main方法入口点方法应该有一个String阵列,而不是Int之一:

def main(args:Array[Int]):Unit={ 

应该

def main(args:Array[String]):Unit={ 

With th ese改变它与Scala 2.10.0编译好。

+0

输出是java.lang.NoClassDefFoundError:中期/主 引起:抛出java.lang.ClassNotFoundException:midterm.Main 在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:202) 在java.security。 AccessController.doPrivileged(本地方法) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) – e0x3 2013-03-10 19:08:47

+0

在评论中粘贴堆栈跟踪确实没有帮助。用新的代码和错误更新你的问题。 – dimo414 2013-03-10 19:22:34

相关问题