2011-04-20 137 views
0

我有錯誤,同時運行該代碼如下:Java類路徑問題

import java.awt.*; 
import javax.swing.*; 

import org.fife.ui.rtextarea.*; 
import org.fife.ui.rsyntaxtextarea.*; 

public class TextEditorDemo extends JFrame { 

    private static final long serialVersionUID = 1L; 


    public TextEditorDemo() { 

     JPanel cp = new JPanel(new BorderLayout()); 

     RSyntaxTextArea textArea = new RSyntaxTextArea(); 
     textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA); 
     RTextScrollPane sp = new RTextScrollPane(textArea); 
     cp.add(sp); 

     setContentPane(cp); 
     setTitle("RSyntaxTextArea 1.4 - Example 1 - Text Editor Demo"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     pack(); 
     setLocationRelativeTo(null); 

    } 

    public static void main(String[] args) { 
     // Start all Swing applications on the EDT. 
     SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      new TextEditorDemo().setVisible(true); 
     } 
     }); 
    } 
} 

當我運行使用java -classpath rsyntaxtextarea.jar;. TextEditorDemo,我沒有收到輸出。 我得到錯誤,而不是:

Exception in thread "main" java.lang.NoClassDefFoundError: TextEditorDemo 
Caused by: java.lang.ClassNotFoundException: TextEditorDemo 
    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: TextEditorDemo. Program will exit. 

任何人都可以幫忙!這個例子是從,RSyntaxTextArea

+6

你得到什麼? – 2011-04-20 13:13:46

+0

什麼錯誤做,如果你沒有任何-classpath選項運行它,你得到什麼? – 2011-04-20 14:33:11

回答

1

採取這與類路徑的問題。

java -classpath rsyntaxtextarea.jar;. TextEditorDemo 

按照目前的設立,VM將期望在同一目錄下找到「TextEditorDemo.class」因爲你是從運行的「Java」,並認爲「rsyntaxarea.jar」也是在該目錄中。檢查這些文件是否確實在當前目錄中。如果沒有,添加必要的路徑信息的罐子,和​​文件的位置。

編輯:原來的類路徑中有 「;」。最後 - 這個問題已經被編輯,並被刪除。 The;。是必要的,以便從當前目錄加載類。

+0

一切僅存在於同一目錄下! – sriram 2011-04-20 13:21:03

+0

這不起作用! – sriram 2011-04-20 13:38:40

1

你的類路徑是錯誤的。它只會在jar文件中找到類。要知道如何設置類路徑到jar文件和你的班級看看我的答案在這個問題:compile sample.java and jgraph_5.8.3.1.jar

+0

但我用於編譯'javac -classpath rsyntaxtextarea.jar TextEditorDemo.java'。它運行良好,只有運行有問題 – sriram 2011-04-20 13:29:06

+0

rsyntaxtextarea.jar存在於我的程序所在的同一文件夾中! – sriram 2011-04-20 13:29:39

+0

@GroovyUser:當您使用classpath運行'java'命令時,它只檢查該類路徑。不在您運行它的文件夾中。 – 2011-04-21 03:51:22