Pregunta

Tengo una aplicación que se puede ampliar a través de clases de Java que se ajustan a una interfaz determinada. Si ejecuto el programa desde las clases de línea de comandos, puedo crear instancias de las clases de complementos usando:

Class.forName("myAddon").newInstance();

Sin embargo, si ejecuto la aplicación (configurando la clase principal correctamente), obtengo una excepción de clase no encontrada. ¿Alguien puede arrojar algo de luz sobre lo que está pasando aquí?

TIA, Adam

¿Fue útil?

Solución

He logrado que esto funcione utilizando un URLClassLoader, especificando la ruta de búsqueda para que sea el directorio actual de la siguiente manera:

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

Gracias por toda su ayuda,

Adam

Otros consejos

La clase que estás buscando no está en el classpath. Si está en un directorio

es decir MyClass.class MyJar.jar

Debe hacer:

java -classpath . -jar MyJar.jar

Pero realmente necesitamos más información para responder la pregunta. ¿Cuál es la clase principal establecida en el manifiesto jar? ¿Cuál es tu classpath? ¿Cómo se especifica qué clase cargar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top