我在运行以下代码时遇到错误:
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
答案 0 :(得分:1)
这是类路径的问题。
java -classpath rsyntaxtextarea.jar;. TextEditorDemo
根据目前的设置,vm将在运行“java”的同一目录中找到“TextEditorDemo.class”,并且“rsyntaxarea.jar”也在该目录中。检查这些文件是否确实在当前目录中。如果没有,请将所需的路径信息添加到jar,以及TextEditorDemo.class
文件的位置。
编辑:原始类路径有“;”。最后 - 问题已被编辑并删除。 的;是必要的,以便从当前目录加载类。
答案 1 :(得分:1)
你的类路径错了。它只会在jar文件中找到类。要知道如何将类路径设置为jar文件和类,请在此问题中查看我的答案:compile sample.java and jgraph_5.8.3.1.jar