java variables system classpath manifest.mf

Problemas con Javapath Manifest.mf



variables system (2)

Las entradas en el class-path son relativas al JAR en el que están incrustadas (que usted está trabajando) o son URL. Para que funcionen sus rutas absolutas, deberá convertirlas en URL, por ejemplo,

file:/opt/sybase13/...

No hay un mecanismo para usar variables.

Aunque la especificación JAR no lo dice claramente, las URL de esquema de file: absoluto funcionan en el atributo class-path.

He intentado ejecutar un archivo jar, llamémoslo test.jar, que usa el jconn3.jar de Sybase en un sistema Unix.

Creé un archivo MANIFEST.MF que tiene lo siguiente:

Class-Path: $SYBASE/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

Esto da un ClassNotFoundError. $ SYBASE es la variable del sistema que apunta a / opt / sybase13; También intenté lo siguiente:

Class-Path: /opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

y

Class-Path: opt/sybase13/jConnect-6_0/classes/jconn3.jar commons-net-1.3.0.jar

Sin embargo, si copio el archivo jconn3.jar de $ SYBASE / jConnect-6_0 / classes en el mismo directorio que test.jar, y actualizo mi MANIFEST.MF para que se lea de la siguiente manera:

Class-Path: jconn3.jar commons-net-1.3.0.jar

La aplicación se ejecuta como se esperaba.

Ahora, he podido verificar que el archivo jconn3.jar funciona copiándolo localmente; mi archivo MANIFEST.MF incluye la ruta a mi clase principal, por lo que no está en cuestión aquí.

¿Cuál crees que podría ser el problema? He estado mirando esto por mucho tiempo ahora. ¡Gracias!


Las variables de entorno no son leídas por el cargador de clases AFAIK. Sin embargo, podría agregar el jar en un script de configuración

Según la especificación, las entradas son parientes del jarrón no absolutas:

Class-Path:

El valor de este atributo especifica las URL relativas de las extensiones o bibliotecas que necesita esta aplicación o extensión. Las URL están separadas por uno o más espacios. La aplicación o el cargador de clases de extensión usa el valor de este atributo para construir su ruta de búsqueda interna.

http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html # Especificación de manifiesto