2012-08-15 12 views
14

Estoy usando IntelliJ 11.1.3 y estoy tratando de adjuntar dos bibliotecas externas en forma de jarfiles para usar en un módulo. Los agregué en la estructura del proyecto -> módulo -> dependencias y también se muestran correctamente en las bibliotecas, pero no puedo importarlos en mi código fuente.IntelliJ no importa los tarros

¿Hay algún paso que me falta aquí? Soy bastante nuevo en IntelliJ, ya había usado Netbeans exclusivamente antes, así que estoy un poco perdido. Pensé que sería lo suficientemente simple para adjuntar las bibliotecas externas y usar las clases de inmediato, pero ni siquiera obtengo los nombres de la biblioteca al completar el código cuando escribo 'importar'.

+1

Asegúrese de que el "alcance" se ajusta en Compilar, no en tiempo de ejecución/Siempre/prueba. –

+2

Intentar invalidar cachés desde el menú Archivo –

+0

Sé que es antiguo. Pero invalidar el caché funcionó para mí. –

Respuesta

10

Lo está haciendo bien, las bibliotecas están configuradas en el Module Dependencies. Verifique que los archivos correctos se hayan agregado allí.

Usted debe ser capaz de navegar por el interior de los frascos en la ventana de proyecto bajo Bibliotecas nodo. Si no puede ver los frascos allí, entonces su biblioteca no está configurada correctamente. Si ve los frascos, pero no puede ver las clases dentro de ellos, probablemente estén rotos, reemplácelos con las copias válidas.

También verifique que las bibliotecas se agreguen a las dependencias del módulo correcto donde intenta importarlas y usarlas. Verifique el alcance de la dependencia, Compile es probablemente lo que necesita.

File | Invalidar cachés puede ayudar en caso de que todo parece correcto, pero no funciona.

Si nada ayuda, comparta un ejemplo de proyecto con las bibliotecas para ilustrar el problema.

+0

Así que rehice todo de nuevo, pero no dados. Puedo ver las jarras y las clases dentro de la vista del proyecto y se han agregado correctamente en Dependencias de módulos, con alcance de compilación, pero todavía no puedo usarlas. Intenté invalidar los cachés, lo que tampoco ayudó. – xjtian

+0

Proporcione un proyecto para reproducir. – CrazyCoder

+0

Tengo un proyecto simple, con una carpeta 'lib' en el directorio del proyecto con los 2 jarfiles y una carpeta 'src'. Debajo de la carpeta 'src' hay un paquete 'main', y bajo ese paquete hay un paquete 'week1', donde tengo el archivo en el que estoy trabajando. Por alguna razón, si pongo 'import main. *' _above_ la declaración del paquete en el archivo fuente en el que estoy trabajando, puedo ver las clases incluidas en el contenedor al completar el código, pero aparece un error obvio razones. ¿Estoy haciendo algo mal al poner los archivos jar en el directorio del proyecto? – xjtian

1

Me encontré con este problema también, lo que hice fue cerrar proyecto actual y volver a crear/importar el proyecto y luego importar jarras, y funciona. Sé que no es sabio, pero es una manera directa y simple. Como probé todo, CRAZYCODER dijo pero no funcionó.

+0

¿Por qué no es aconsejable recrear un proyecto? No cuesta nada eliminarlo y volver a crearlo. Si usa maven o gradle, es bastante fácil de recrear. Para maven - ejecutar 'mvn idea: idea', para gradle tienes que' apply plugin: idea' Y luego 'gradle ideaProject' –

0

Si su dependencia jar en el POM no tiene un alcance (o si tiene uno, cámbielo a un nuevo valor temporal), agregue uno temporal, p. 'compilar'. Intellij reconocerá el cambio y actualizará las Bibliotecas externas. Luego puede eliminar el alcance temporal.

3

Estás usando un paquete. Estas bibliotecas deben usarse desde el paquete predeterminado. Por lo tanto, mueva todas sus clases al paquete predeterminado (es decir, la carpeta src) y elimine todas las instrucciones de paquete/importación. Además, en lugar de java.io, use las clases In o Stdin para leer los datos.

+2

¿Alguna sugerencia sobre cómo leer bibliotecas externas desde dentro de un paquete? Me gusta evitar el uso del paquete predeterminado para mantener la organización del código. – modulitos

+0

Este es exactamente el problema que estaba teniendo. Sin embargo, es molesto. ¿Hay alguna manera de seguir utilizando una estructura de paquete mientras se usa este tipo de bibliotecas (creadas por la universidad)? – AutonomousApps

0

proyectos Maven -> Haga clic derecho en su proyecto -> Desactivar

0

que enfrentan el mismo problema y trataron casi todas las soluciones mencionadas anteriormente y here. Para la mayoría de nosotros, las soluciones mencionadas deberían funcionar.

Mi caso era un poco diferente, así que pensé en mencionarlo aquí.

En la configuración del Repositorio Maven del proyecto IntelliJ, descubrí que incluso el repositorio .m2 local no se pudo actualizar. Intenta conectarse a localhost y particularmente en mi caso, el archivo hosts tenía una configuración diferente para localhost.

me cambió eso y comenzó a trabajar, ya que fue capaz de conectarse a .m2 locales ahora

Cuestiones relacionadas