2012-08-15 24 views
20

Creé un proyecto Java para llamar a un servicio web. Tiene un archivo principal de Java y otro archivo de clase. He usado algunos archivos jar para el cliente HTTP.
En Eclipse funciona bien. Necesito ejecutar el programa Java en el símbolo del sistema pasando algunos argumentos. En
símbolo del sistema Fui a la carpeta que contiene java src principal y archivos java subclase y dio el siguiente comandoCómo ejecutar el programa Java en el símbolo del sistema

javac mainjava.java  

que estoy recibiendo de error siguiente

mainjava.java:14: cannot find symbol
symbol : class SubClass

aquí subclase es mi otra clase de Java archivo utilizado para llamar al servicio web.

¿Cómo ejecutar el programa pasando argumentos?

+0

¿Has configurado tu ruta de clase? – Rocky

+0

Gracias a todos por ayudarme, funciona bien para mí ..... – Vignesh

Respuesta

20

javac es el compilador de Java. java es la JVM y lo que utiliza para ejecutar un programa Java. No ejecuta archivos .java, solo son archivos fuente. Es de suponer que es .jar alguna parte (o un directorio que contiene .class archivos) que es el producto de la construcción de ésta en Eclipse:

 
java/src/com/mypackage/Main.java 
java/classes/com/mypackage/Main.class 
java/lib/mypackage.jar 

De directorio java ejecutar:

java -cp lib/mypackage.jar Main arg1 arg2

+0

Este es mi stucture carpeta WebCall/src/main.java ---- WebCall/src/Sub.java ------ WebCall/extjarfiles/httpcore.jar ----- WebCall/extjarfiles /httpclient.jar----- – Vignesh

+0

¿Hay una carpeta 'webcall/classes' o' webclass \ lib'? – hmjd

+0

utilicé javac -cp extjarfiles/AllJarFiles main.java ------ Se compiló con éxito pero se produjo un error al ejecutar el proyecto – Vignesh

2

Puede usar el comando javac *.java para compilar todas las fuentes de Java. También debería aprender un poco sobre classpath porque parece que debería establecer el classpath adecuado para una compilación exitosa (porque su IDE usa algunas librerías para construir clientes de WebService). También puedo recomendarle que verifique qué comandos usa su IDE para construir su proyecto.

+0

En mi ide utilizando este comando para ejecutar ***** "C: \ Archivos de programa \ Java \ jre6 \ bin \ javaw.exe" - Dfile.encoding = Cp1252 -classpath "D: \ Projects \ Eclipse Projects \ WebServiceCall \ bin; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpcore-4.0.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpclient-4.0.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ commons-logging-1.1.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ gson-1.7.1.jar "WSCall.ServiceCall * *** – Vignesh

+0

Si utilizo el comando anterior en el símbolo del sistema, no puedo ejecutarlo. pero no puedo pasar los argumentos – Vignesh

+0

Puede intentar agregar argumentos al final del comando. – gkuzmin

14

un símbolo del sistema muy general de cómo para Java es

javac mainjava.java 
java mainjava 

Es muy verá a menudo la gente que hace

javac *.java 
java mainjava 

En cuanto al problema subclase Eso es probablemente ocurre debido a una ruta no se encuentra en su camino de clase, el indicador -c creo que se usa para configurar eso.

+0

+1 para 'javac * .java', esto también compilará el archivo fuente SubClass.java de OP. – martijno

1

javac solo compila el código. Necesita usar el comando java para ejecutar el código. El error se debe a que classpath no contiene la clase Subclase cuando intentó compilarla. es necesario agregar que con la variable -cp en el comando javac

java -cp classpath-entries mainjava arg1 arg2 debe ejecutar el código con 2 argumentos

1

Todo lo que necesita hacer es:

  • Construir la clase mainjava utilizando la ruta de clase en su caso (opcional)

    javac * .java [-cp "wb.jar;"]

  • Crear Manifiesto.archivo txt con contenido es:

    principal Clase: mainjava

  • paquete el archivo jar para la clase mainjava

    tarro de pies cúbicos por minuto mainjava.jar manifest.txt * .class

Entonces Puede ejecutar este archivo .jar desde cmd con classpath (opcional) y ponerle argumentos.

java [-cp "wb.jar;"] mainjava arg0 arg1 

HTH.

Cuestiones relacionadas