2010-02-10 48 views
5

Mi código compila bien, pero estoy gettting un error de ejecución en esta línea:¿Qué puede causar java.lang.NoClassDefFoundError?

File myFile = new File(FilenameUtils.concat(basePath, localPath));

El error que se produce es:

java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils

¿Por qué el código compilar si se puede resolver una clase?

Gracias por cualquier consejo.

Respuesta

9

Debe agregar la biblioteca commons-io a su classpath en tiempo de ejecución.

http://commons.apache.org/io/

En NetBeans Proyecto ventana Propiedades, haga clic en Bibliotecas en el panel izquierdo, y en el panel de la derecha son 4 categorías de ruta de clases que se pueden configurar. Debe actualizar su ruta Ejecutar o asegurarse de que Compilar contenga la biblioteca commons-io.

+0

bien, soy nuevo a Java - ¿Cómo puedo añadir a la ruta de ejecución? im using netbeans, gracias – MalcomTucker

+0

En la ventana de propiedades del proyecto NetBeans, haga clic en Bibliotecas en el panel izquierdo, y en el panel derecho hay 4 categorías de classpath que puede configurar. Debe actualizar su ruta de ejecución o asegurarse de que la compilación contiene la biblioteca commons-io. – uthark

+0

@uthark: debe editar su respuesta, será más útil :) –

2

Es posible que tenga el frasco en su entorno de ruta de clase developen, pero que lo necesite en su ruta de clases de tiempo de ejecución

+0

como arriba, ¿cómo lo agrego a la ruta de tiempo de ejecución? Estoy usando netbeans, gracias – MalcomTucker

+0

No sé cómo está en netbeans, pero hazle un oído y pon todos los frascos (tuyos y las dependencias) dentro. –

3

mira esto from the NetBeans tutorial

Básicamente, usted va a añadir un archivo JAR (una biblioteca, la commons.apache.org IO one) a la classpath de su proyecto "properties".

Si se va a ejecutar el proyecto empaquetado desde la línea de comandos, se puede especificar la ruta de clase de esta manera:

java -cp apache-io.jar myproject.jar 
Cuestiones relacionadas