运行以下代码时出现错误:
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
最佳答案
这是类路径的问题。
java -classpath rsyntaxtextarea.jar;. TextEditorDemo
按照目前的设置,虚拟机将期望在运行“java”的同一目录中找到“TextEditorDemo.class”,并且“rsyntaxarea.jar”也在该目录中。检查这些文件是否确实位于当前目录中。如果没有,请将所需的路径信息添加到 jar 中,以及 TextEditorDemo.class
文件的位置。
编辑:原始类路径有“;”。最后 - 问题已被编辑并被删除。 这 ;。必须从当前目录加载类。
关于Java类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5730882/