2011-02-26 9 views
6

Estoy tratando de ejecutar el archivo de gramática ANTLR C (DummyC.g) desde la línea de comandos para analizar los archivos fuente y de encabezado C (a.h). Cuando lo ejecuto con el archivo antlr.jar, genera archivos analizadores y lexers. pero cuando compilo el archivo de prueba Main.java. Da error de paquetes ANTLR faltantes como se muestra a continuación.Problema al compilar el código fuente de Java utilizando ANTLR v3

C: \ antlr-2.7.6 \ test> javac Main.java

Main.java:1: paquete org.antlr.tool no existe org.antlr.tool importación. ;
^ Main.java:2: el paquete org.antlr.runtime no existe import org.antlr.runtime.
;
^ Main.java:3: package org.antlr.runtime.tree no existe import org.antlr.runtime.tree. ;
^ Main.java:4: package org.antlr.stringtemplate no existe import org.antlr.stringtemplate.
;
^ Main.java:8: no se puede encontrar el símbolo símbolo : CommonTree clase ubicación: Clase principal árbol CommonTree = DummyCParser.start ("a.h");

Main.java

import org.antlr.tool.*; 
import org.antlr.runtime.*; 
import org.antlr.runtime.tree.*; 
import org.antlr.stringtemplate.*; 

public class Main { 
    public static void main(String[] args) throws Exception { 
     CommonTree tree = DummyCParser.start("a.h");  
     DOTTreeGenerator gen = new DOTTreeGenerator(); 
     StringTemplate st = gen.toDOT(tree);  
     System.out.println(st); 
     } 
} 

¿Cuál podría ser el problema?

+0

¿Por qué no descargas un IDE gratuito como Eclipse o intelliJ? Te ayudará a ver visualmente dónde hay problemas. En este caso, probablemente necesite consultar la ubicación de los archivos jar relevantes en el classpath cuando compile. –

+0

'antlr-2.7.6' ??? –

+0

Además, anteriormente le recomendé que revisara mis otras respuestas ANTLR para ver cómo compilar las clases, pero en ninguna parte sugerí compilarlo como lo intenta hacer ahora. –

Respuesta

6

Está utilizando el tiempo de ejecución de antlr, por lo que deberá especificar los archivos jar antlr como parte de la ruta de clases para que el compilador pueda encontrar las clases antlr que utiliza, p.

javac -classpath c:\java\antlr-3.3\lib\antlr-3.3-complete.jar Main.java 
+0

Tengo el archivo jar en la misma carpeta que tiene la fuente y el archivo de prueba. ¿No debería funcionar? Solo el archivo jar es necesario, creo. ¿O es necesario incluir classpath? – user628127

+0

Aún necesita especificar la ruta al jar antlr. Mejor enfoque: aprende sobre maven y usa un ide. O incluso solo maven desde la línea de comando. http://www.sonatype.com/books/maven-book/ También: www.eclipse.org –

+0

Di el classpath pero todavía el mismo error C: \ antlr-2.7.6 \ test> javac -classpath c: \ ANTLR -3.2 \ antlr-3.2.jar Main.java Main.java:1: package org.antlr.tool no existe import org.antlr.tool. *; ^ Main.java:2: package org.antlr.runtime no existe import org.antlr.runtime. *; ^ – user628127

Cuestiones relacionadas