Comprender los frascos externos en Eclipse

Así que soy bastante nuevo en Java y especialmente en Eclipse, así que disculpe mi ignorancia. Tomé un proyecto de un servidor y lo copié localmente en mi máquina. Cuando abrí el espacio de trabajo, tuve muchos errores debido a que no podía encontrar los frascos. Esto tiene sentido porque no tengo la misma estructura de directorios que el servidor desde el que copié. Entonces, si copio los mismos jar externos en mi máquina y hago que se compile en un jar y los copie de nuevo en el servidor, ¿funcionará? ¿O fallará porque ahora los jarros externos están en un lugar diferente de lo que esperaba?

Además, en el futuro, ¿debería poner los frascos externos en frascos regulares para evitar este problema?

Respuesta 1

Deberías estar bien. Java está utilizando lo que se llama classpath para localizar dependencias. El classpath puede ser diferente en las máquinas de desarrollo, pero siempre y cuando todas las dependencias estén en el classpath en la producción, todo debería funcionar.

Para evitar problemas con la sincronización de las estructuras de directorios, la forma más común es usar Maven: administrará todas las dependencias por usted (pero debe administrar pom.xml, el descriptor del proyecto de Maven). Una forma un poco más torpe es tener las dependencias en el proyecto, sin embargo, puede terminar con muchos proyectos que tengan que incluir los mismos frascos, y luego habrá conflictos de versiones, etc.

Para proyectos pequeños, puede administrar dependencias usted mismo, sin embargo, los proyectos más grandes necesitarán una estrategia más pensada (como Maven).

Con respecto a los archivos jar ejecutables, asegúrese de que la entrada Class-Path en <jarfile>: \ META-INF \ MANIFEST.MF sea correcta, por ejemplo, cuando hace referencia a otros archivos jar, esos archivos van a estar allí en la producción. Por ejemplo, supongamos que tenemos ourjar.jary supongamos que este es un fragmento de su MANIFEST.MF:

Class-Path: lib/myteamjar.jar

Entonces se esperará que exista una siguiente estructura de directorios:

lib/myteamjar.jar
ourjar.jar
Respuesta: 2

No, la ubicación de los frascos externos no importa. Lo que quieres hacer es poner los frascos externos en tu classpath. Cómo lo haga depende de cómo esté ejecutando su código Java. Si lo está ejecutando desde la CLI utilizando el javacomando, toma el classpath como argumento. Si desea que su código se compile / ejecute en Eclipse, debe hacer clic derecho en su proyecto, seleccionar "Ruta de compilación"> "Configurar ruta de compilación ..." Use el botón "Agregar archivos JAR ..." para agregar archivos que son parte de un proyecto que tiene abierto y "Agregar archivos JAR externos ..." para agregar archivos jar que residen fuera del proyecto. Consulte la documentación específica de su herramienta para obtener más detalles sobre classpaths.

Respuesta: 3

Estoy usando JSF 2.0.5, Tomcat 7.0.12 y prettyfaces. Mi archivo web.xml es: <welcome-file-list> <welcome-file> /index.jsp </welcome-file> </welcome-file-list> My pretty ...

Tengo un problema con la ejecución de mi aplicación. Tengo un servidor: #include "Hello_impl.h" #include <iostream> #include <omniORB4 / CORBA.h> #include <omniORB4 / Naming.hh> usando el espacio de nombres ...

¿Existe una manera simple de agregar controladores / oyentes a los widgets para que se pueda detectar el cambio en la visibilidad? ¿O tengo que crear un sistema propio? (lo que significa crear otros widgets que envuelvan ...

Estoy usando la agrupación de conexiones JDBC con mysql. Este es mi código privado estático DataSource _ds; / ** * crea la fuente de datos si no existe * / private DataSource getDataSource () ...