Agregar una biblioteca externa a un jarrón de artefactos en IntelliJ IDEA

¿Cómo puedo agregar una biblioteca externa a un proyecto en IntelliJ IDEA para que cuando construya un artefacto, todavía tenga acceso a las clases en la biblioteca?

Creé un nuevo artefacto Jar de Project Structure, luego agregué el JAR externo a las Bibliotecas, luego lo revisé en la Lista de Módulos y finalmente lo agregué al Output for the Artifact. Ninguno de estos funciona Cuando construyo e bash ejecutar mi aplicación, arroja un error:

Exception in thread "main" java.lang.NoClassDefFoundError:

¿Qué me estoy perdiendo, o estoy haciendo esto completamente mal?

Tienes 2 opciones aquí:

  • extrae la dependencia en el contenedor de artefactos para que la aplicación sea el único archivo ejecutable con todas las dependencias
  • enlace los archivos dependientes a través de Manifest.MF y cópielos cerca del archivo principal de la aplicación

He preparado un proyecto de muestra que muestra ambos enfoques: HelloWithDependencies.zip .

Los artefactos se producen en directorios out\single y out\linked .

Configuraciones relevantes:

soltero

vinculado

Si está utilizando maven para comstackr su aplicación, esta no es la forma correcta de agregar una biblioteca externa. Usted debe cualquiera

  1. Realice una instalación de su biblioteca como a continuación mvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar .
  2. Use la ruta del sistema como se explica aquí .

La opción 1 es preferible ya que no es necesario que guardes jar en tu proyecto.