Tengo un archivo jar que menciona la clase principal en el manifiesto. Cuando intento ejecutar el frasco con el siguiente comandoTiene la opción java -jar alterar las opciones de classpath
java -cp .;./* com.foo.MainClass
El código se ejecuta y funciona.
Cuando intento ejecutar el frasco con el siguiente comando
java -cp .;./* -jar myjar.jar
consigo clase no execptions encontrados para algunas jarras que están en la misma carpeta que myjar.jar. Espero que la opción -cp incluya esos archivos jar en la ruta de la clase. Modifiqué mi código para imprimir la propiedad java.class.path. En el primer caso, se enumeraban todos los archivos jar en el directorio actual, en el segundo caso solo se enumeraba myjar.jar
También modifiqué el manifiesto para agregarle un elemento Class-Path con todos los archivos jar. Entonces el segundo comando funciona. Pero en mi código estoy tratando de cargar una clase aribtrary cuyo nombre se proporciona en el símbolo del sistema, por lo que quiero que la ruta de clase contenga todos los archivos jar en una carpeta. ¿Cómo hago que el segundo comando funcione en este escenario?
Eche un vistazo a [OneJar] (http://one-jar.sourceforge.net/). Eso debería resolver sus problemas de CP. – flash
@flash: Probablemente no. Él dice que no conoce la ruta de clase adicional en tiempo de compilación (de lo contrario, podría simplemente agregarlo al manifiesto). – Thilo
Parece que tiene que usar su propio cargador de clases (que agrega cosas de acuerdo con su entorno). – Thilo