2011-04-20 6 views
0

J'ai erreur lors de l'exécution de ce code ci-dessous:problème Java classpath

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); 
     } 
     }); 
    } 
} 

Quand je lance à l'aide java -classpath rsyntaxtextarea.jar;. TextEditorDemo, je ne reçois pas la sortie. je reçois erreur à la place que:

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. 

Quelqu'un peut-il aider! Cet exemple provient de RSyntaxTextArea

+6

Et qu'est-ce que vous obtenez? –

+0

Quelle erreur obtenez-vous si vous l'exécutez sans option -classpath? –

Répondre

1

Ceci est un problème avec le chemin de classe.

java -classpath rsyntaxtextarea.jar;. TextEditorDemo 

Aux termes actuellement en place, la machine virtuelle s'attendra à trouver « TextEditorDemo.class » dans le même répertoire que vous utilisez « java » à partir, et que « rsyntaxarea.jar » est également dans ce répertoire. Vérifiez que ces fichiers se trouvent bien dans le répertoire en cours. Si ce n'est pas le cas, ajoutez les informations de chemin nécessaires au fichier jar et l'emplacement du fichier TextEditorDemo.class.

EDIT: Le chemin de classe d'origine a ";." à la fin - la question a été éditée et ceci enlevé. Le; est nécessaire pour que les classes soient chargées depuis le répertoire courant.

+0

Tout est présent dans le même répertoire seulement! – sriram

+0

Cela ne fonctionne pas! – sriram

1

Votre chemin de classe est erroné. Il ne trouvera que la classe dans le fichier jar. Pour savoir comment définir classpath dans un fichier jar et à votre classe, regardez ma réponse dans cette question: compile sample.java and jgraph_5.8.3.1.jar

+0

Mais j'ai utilisé pour la compilation 'javac -classpath rsyntaxtextarea.jar TextEditorDemo.java'. Cela fonctionne bien, il y a un problème avec exécuter seulement – sriram

+0

rsyntaxtextarea.jar est présent dans le même dossier où réside mon programme! – sriram

+0

@GroovyUser: Lorsque vous exécutez la commande 'java' avec un classpath, il vérifie uniquement ce classpath. Pas dans le dossier où vous l'exécutez. –