2009-05-12 17 views
149

estoy tratando de añadir un directorio a la ruta de clase de un perfil de ejecución de la aplicacióncómo agregar el directorio a classpath en un perfil de ejecución de la aplicación en intellij idea?

Si puedo reemplazar mediante el uso de -cp x: target/classes en la configuración de la máquina virtual, me sale el siguiente error:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain 

¿Alguna idea sobre cómo agregar un directorio al classpath para mi proyecto?

+1

no es claro para mí, en el que está intentando agregar que a partir de la línea de comandos IJ O en las propiedades del proyecto –

Respuesta

171

En Intellij 13, parece que es ligeramente diferente otra vez. Aquí están las instrucciones para IntelliJ 13:

  1. clic en la ventana de proyecto o mostrar haciendo clic en el "1: Proyecto" botón en el borde izquierdo de la ventana o pulsando Alt + 1
  2. encontrar su proyecto o sub-módulo y haga clic en él para seleccionarlo, a continuación, presione F4 o haga clic derecho y seleccionar "Ajustes del módulo de puertas abiertas" (en IntelliJ 14 se convirtió en F12)
  3. clic en la ficha dependencias
  4. Haga clic en el signo "+ "botón a la derecha y seleccione" Tarros o directorios ..."
  5. Encuentra tu camino y haga clic en OK
  6. En el diálogo con 'elegir las categorías de archivos seleccionados', seleccione las clases (incluso si se trata de propiedades), pulse OK y OK de nuevo
  7. Ahora puede ejecutar la aplicación y tendrá la ruta seleccionada en la ruta de clase
+1

Entonces, ¿cómo crearía para ejecutar configuraciones con dos directorios diferentes que deben estar exclusivamente presentes en uno pero no en el otro? En Eclipse puedes agregar/eliminar cualquier cosa a una configuración de lanzamiento. ¿IntelliJ no es compatible con esto? –

+7

Está bastante claro que puede cambiar classpath de * ejecutar configuración * cambiando * módulo * classpath. Pero la pregunta exacta era "cómo agregar el directorio a la ruta de clases en una aplicación * ejecutar el perfil *". Así que lo real fue dado por uaaquarius – dart

+0

¡Gracias! ¡Esto resolvió mi problema después de siglos de búsqueda! – JonasCz

19

Estoy usando Idea 8. en la pestaña de dependencias del módulo (en el diálogo de estructura del proyecto). Agregue una "biblioteca de módulos". Allí puede seleccionar un Jar Directory para agregar. A continuación, asegúrese de que el perfil de ejecución está utilizando la ruta de clases y JDK del módulo correcto cuando se ejecuta (esto es en el diálogo de ejecución de configuración

30

Usted puede intentar -Xbootclasspath/a:.. ruta opción del lanzador de aplicaciones Java descripción especifica "una ruta de directivas, archivos JAR y archivos ZIP separados por dos puntos para anexar a la ruta predeterminada de la clase de arranque".

+1

Parte de la documentación sobre cómo funciona -Xbootclasspath.??: http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570 – Lambart

+1

Esta es una buena respuesta ya que no requiere le pedirá que cambie la configuración de su proyecto. De hecho, creo que responde mejor a la pregunta. – Chewy

+1

Desafortunadamente, esto no funcionó para mí, ya que esto genera todas las clases cargadas desde esa ruta de clases que cargará el cargador de clases de rutina de carga, lo que rompe el código que asume que Xyz.class.getClassLoader() no es nulo. – Njol

71

Parece que IntelliJ 11 ha cambiado el método, y la respuesta comprobada ya no funciona En caso de que alguien más llegue aquí a través de un motor de búsqueda, así es como lo resolví en IntelliJ 11:

  1. Ir a la estructura del proyecto, haga clic en Módulos y haga clic en su Módulo
  2. Elija las "Dependencias" pestaña
  3. Haga clic en el botón "+" en el lado derecho y seleccione "tarros o directorios ... "
  4. Añadir el directorio (s) que desea (tenga en cuenta que puede multi-select) y haga clic en OK
  5. En el cuadro de diálogo que aparece, seleccione 'clases' y no 'directorio de jar'
  6. Asegúrate' re usando ese Módulo en su objetivo de ejecución

Tenga en cuenta que el paso 5 parece ser la diferencia clave. Si selecciona "directorio jar", se verá exactamente igual en el IDE, pero no incluirá la ruta en el tiempo de ejecución. Parece que no hay manera de determinar si previamente seleccionó "clases" o "directorio jar" después del hecho.

+2

Muchas gracias por publicar esto. Me acabas de salvar una hora más o menos. –

+0

Tengo el mismo problema que antes con IJ11 y me alegré de encontrar una respuesta esperándome esta vez. – sal

+0

Perfecto. El mismo proceso para IJ12. Corrimos a través de esta publicación al intentar resolver 'java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver' Esto resolvió el problema de conexión. Gracias – jkmurphy1

3

Supongamos que necesita solo x: target/classes en su classpath. Luego, simplemente agrega esta carpeta a su classpath y% IDEA% \ lib \ idea_rt.jar. Ahora funcionará. Eso es.

+0

La pregunta es ¿cómo se agrega esta carpeta a su classpath en IDEA? – Pacerier

Cuestiones relacionadas