2015-01-21 227 views
0

把它弄出來的方式我是一個完整的n00b我在這裏學習javaJava運行時錯誤:「無法初始化類FormPreviewFrame」

IDE:的IntelliJ

問題:我進口ACM庫到我的成功的項目,但是當我運行一個簡單的測試程序,我得到這個錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class FormPreviewFrame 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:259) 
    at acm.util.JTFTools.readMainClassFromClassPath(JTFTools.java:1092) 
    at acm.util.JTFTools.getMainClass(JTFTools.java:461) 
    at acm.program.Program.main(Program.java:1320) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 

這裏是我的程序:

import acm.program.*; 

public class hello extends ConsoleProgram{ 

    public void run(){ 
     println("Hello World"); 
    } 

} 

真的很容易我知道,但我只是測試,看它是否會與intellij工作,但它吐出了一個錯誤。

+0

你有一個「主要」方法? – 2015-01-21 02:36:41

+0

正如eckes,你指出,acm庫不需要包含主要方法,並且您的問題與IntelliJ相關,也許這可能有所幫助:http://stackoverflow.com/questions/20241265/cant-compile-and -run-java-code-intellij-idea – 2015-01-21 03:00:37

+0

將這個庫用於java學習看起來不是一個好主意。至少沒有IDE。如果您使用教程中所述的javac和java命令,它可能會更好。 – eckes 2015-01-21 03:08:16

回答

0

如果您沒有主要方法,庫將通過各種方法搜索主類。你的情況失敗的方法是「readFromClassPath」。這將打開類路徑中的所有JAR,並查找具有主類條目的Manifest。看起來這與IDE不兼容。

由於本教程沒有描述這一點,而且您沒有提到您正確設置了它,我認爲它只是找到了錯誤的一個。如果你保留main()它應該可以工作(也許不是,我不清楚這個庫是如何工作的,它肯定會在整個地方使用非標準的方法)。如果主要方法不能解決問題,似乎兌現系統屬性是這樣的:-Djava.main=hello

+0

(我認爲你不要使用這個庫幫你一個忙) – eckes 2015-01-21 03:05:03

2

嘗試添加此:

public static void main(String[] args) { 
     new hello().start(args); 
    } 

整個節目看起來像:

import acm.program.*; 

public class hello extends ConsoleProgram{ 

    public void run(){ 
     println("Hello World"); 
    } 

    public static void main(String[] args) { 
     new hello().start(args); 
    } 

} 
相關問題