2013-03-10 71 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

相關問題