2011-04-20 3 views
0

나는 오류가 있습니다자바 클래스 패스 문제

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

그리고 무엇을 얻고 있습니까? –

+0

-classpath 옵션없이 실행하면 어떤 오류가 발생합니까? –

답변

1

클래스 패스에 문제가 있습니다.

java -classpath rsyntaxtextarea.jar;. TextEditorDemo 

는 다음과 같이 현재 VM이 당신이에서 "자바"를 실행과 같은 디렉토리에 "TextEditorDemo.class"를 찾아 낼 것으로 예상되며, 설정, 그리고 그 "rsyntaxarea.jar는"해당 디렉토리에 있습니다. 이 파일들이 현재 디렉토리에 있는지 확인하십시오. 그렇지 않은 경우에는 jar에 필요한 경로 정보와 TextEditorDemo.class 파일의 위치를 ​​추가하십시오.

EDIT : 원본 클래스 경로에 ";"이 있습니다. 마지막에 질문이 편집되고 제거되었습니다. ; 클래스가 현재 디렉토리에서로드되도록해야합니다.

+0

모든 것이 같은 디렉토리에만 있습니다! – sriram

+0

이것은 작동하지 않습니다! – sriram

1

클래스 경로가 잘못되었습니다. jar 파일에서만 클래스를 찾습니다. jar 파일과 클래스에 classpath를 설정하는 방법을 알고 싶다면 내 대답을 다음 질문에서 찾으십시오. compile sample.java and jgraph_5.8.3.1.jar

+0

하지만 나는'javac -classpath rsyntaxtextarea.jar TextEditorDemo.java' 컴파일에 사용했다. 잘 작동합니다. 실행에만 문제가 있습니다 – sriram

+0

rsyntaxtextarea.jar은 내 프로그램이있는 동일한 폴더에 있습니다! – sriram

+0

@GroovyUser : classpath와 함께'java' 명령을 실행하면 클래스 패스 만 검사합니다. 실행중인 폴더가 아닙니다. –