2011-04-20 148 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