当我运行scala应用程序时,如何解决“NoClassDefFoundError:midterm/Main”?
问题描述:
我尝试编译这段代码当我运行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
如何解决它的输出?
答
这似乎是一个包装问题。确保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
编译好。
输出是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
在评论中粘贴堆栈跟踪确实没有帮助。用新的代码和错误更新你的问题。 – dimo414 2013-03-10 19:22:34