我正在關注Princeton website上的java教程。Java不會在終端java.lang.NoClassDefFoundError中運行程序
我跑debian sqeeze 64bit
,我已經安裝了Sun的Java版本6.
我可以編譯,沒有任何問題,運行基本hello world
程序,使用終端和Eclipse IDE。
的問題是:
,當我嘗試編譯並運行程序,這需要例如參數輸入:
public class RandomSeq {
public static void main(String[] args) {
// command-line argument
int N = Integer.parseInt(args[0]);
// generate and print N numbers between 0 and 1
for (int i = 0; i < N; i++) {
System.out.println(Math.random());
}
}
}
我可以在Eclipse中運行這個把一個整數參數,但它在終端上不起作用。
我得到這個錯誤:
[email protected]:~/Documents/workspace/IOput/src/randomSeq$ java RandomSeq 21 Exception in thread "main" java.lang.NoClassDefFoundError: RandomSeq (wrong name: randomSeq/RandomSeq) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 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:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: RandomSeq. Program will exit.
我試圖更新/etc/profile
包括在PATH變量java-6-sun
。
我不確定,從這裏嘗試。
您的類路徑不正確。 –
你的主要課程是在默認包中嗎?你是否把它包含在另一個包中?如果是這樣,請不要將其保留在默認包中。 – Adrian
你的源文件中有包定義嗎?如果是,轉到'src /'文件夾並在那裏執行程序(使用'randomseq.Randomseq'作爲類) – ZeissS