2009-06-03 17 views
72

Estoy tratando de llamar a una clase (método principal) desde la línea de comandos (Windows) con Java.
La clase importa otras clases (otras jarras).Java: cómo importar un archivo jar desde la línea de comandos

Siempre obtengo la "clase no encontrada excepción" de una clase que importa mi programa principal.

Esto es lo que he intentado:

  • Añadir un env CLASSPATH. var por la ruta donde reside el lib referencia (no funciona)

  • me trataron con todos estos diferentes parámetros al llamar "java -jar myjar.jar" de línea de comandos: "-classpath lib/", "-classpath ./lib/", "-classpath lib", "-cp lib/*", "-cp lib/\*", "-classpath lib/referenced-class.jar", "-classpath ./lib/referenced-class.jar" (lib es donde reside el frasco de referencia)

  • me trataron envasado de todo el frasco de referencia dentro de mi tarro donde reside mi clase principal ...

  • Y con todo eso, también intenté especificar las clases dentro del archivo de manifiesto con: Class-path referenced-jar.jar y también he intentado Class-path lib/referenced-jar.jar

Respuesta

116

Usted podría funcionar sin el argumento de la línea -jar comando si por casualidad usted conoce el nombre de la clase principal desea ejecutar:

java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass 

Si por casualidad está utilizando linux, debe utilizar ":" en lugar de ";" en el classpath.

+0

woohoo, funcionó! Gracias :) –

+0

¡Busqué siempre para resolver esto! – chotchki

+9

Para que quede claro, el jar tiene que explícitamente en el classpath. Especificar un/lib dir es ineficiente. – cmcginty

59

Si se está ejecutando un archivo JAR con java -jar, el argumento -classpathis ignored. Es necesario establecer la ruta de clase en el archivo de manifiesto de la jarra, así:

Class-Path: jar1-name jar2-name directory-name/jar3-name

consulte los tutoriales de Java: Adding Classes to the JAR File's Classpath.

Edit: Veo que ya ha intentado establecer la ruta de clase en el manifiesto, pero ¿está seguro de que utilizó la sintaxis correcta? Si omite el ':' después de 'Class-Path' como mostró, no funcionaría.

+0

Sí, lo intenté también ... no funcionó para mí :( –

+0

¿Has visto mi edición? –

+0

sí, he intentado con el ":" también ... No sé por qué usar el manifiesto para especificar esos no funcionaron en absoluto.Le pregunté a colegas y volví a verificar todo con ellos. –

3

puede intentar exportar como "jar ejecutable" en eclipse. También tengo problemas cuando exporto como "jar", pero nunca tengo problemas cuando lo exporto como "jar ejecutable".

+0

No veo una opción de "jar ejecutable" en las ventanas de exportación, solo un archivo JAR :( –

+0

qué versión de eclipse estás usando? Lo tengo en Ganymede .... screrenshot aquí: http://bufka.ath.cx/dslr/Eclipse-Export.png Pero no sé, si esa es la configuración predeterminada o no. – cupakob

13

tratar

java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main 

Si está en Windows, se debe utilizar ; en lugar de :

Cuestiones relacionadas