Foros del Web » Programación para mayores de 30 ;) » Java »

dll en jar

Estas en el tema de dll en jar en el foro de Java en Foros del Web. Hola. Les comento que estube probando una libreria que permite poner iconos en la barra tray. Bueno, esta necesita de una dll, lo que quisiera ...
  #1 (permalink)  
Antiguo 19/12/2006, 06:05
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Exclamación dll en jar

Hola.

Les comento que estube probando una libreria que permite poner iconos en la barra tray. Bueno, esta necesita de una dll, lo que quisiera es poner esa dll de alguna forma dentro de mi archivo jar que luego voy a distribuir usando java web start.

No solo pone iconos sino tambien menus emergentes ahí.

Mi duda es como hago para que mi aplicacion reconozca la dll que necesito se distribuya. Como en web start no puedo distribuir dll, debo hacerlo dentro de un jar. Como lo hago?

Gracias
  #2 (permalink)  
Antiguo 19/12/2006, 06:15
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 3 meses
Puntos: 19
Re: dll en jar

Puedes usar la utilidad jar.exe de java.
Cita:
C:\Java\jdk1.5.0_05\bin>jar
Sintaxis: jar {ctxu}[vfm0Mi] [archivo-jar] [archivo-manifest] [-C dir] archivos
...
Opciones:
-c crear nuevo contenedor
-t mostrar contenido de contenedor
-x extraer archivos nombrados (o todos) del contenedor
-u actualizar contenedor existente
-v generar salida detallada en salida estßndar
-f especificar nombre de archivo contenedor
-m incluir informaci¾n de manifest del archivo manifest especificado
-0 solo almacenar; no utilizar compresi¾n ZIP
-M no crear un archivo manifest para las entradas
-i generar informaci¾n de Ýndice para los archivos jar especificados
-C cambiar al directorio especificado e incluir el archivo siguiente
Si alguno de los archivos es un directorio, se procesarß de forma recursiva.
Se deben especificar los nombres del archivo manifest y del archivo contenedor
en el mismo orden en que se especifiquen los indicadores 'm' y 'f'.

Ejemplo 1: para archivar dos archivos de clase en un contenedor llamado classes.
jar:
jar cvf classes.jar Foo.class Bar.class
Ejemplo 2: utilizar un archivo manifest existente, 'mymanifest', y archivar todo
s los
archivos del directorio foo/ en 'classes.jar':
jar cvfm classes.jar mymanifest -C foo/ .
salu2
  #3 (permalink)  
Antiguo 19/12/2006, 06:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: dll en jar

Ummm.... creo que con Java Web Start si se pueden distribuir .dll, a ver si encuentro la información que vi al respecto...

PD: Incluir la .dll dentro del .jar no funciona, ya que es el S.O. el que debe ser capaz de cargar la libreria nativa y no saben como sacarlas de los .jar (excepto si se hace con JWS, que se encarga de sacar la libreria del .jar y ponerla en su sitio, por lo que parece)

Última edición por GreenEyed; 19/12/2006 a las 06:24
  #4 (permalink)  
Antiguo 19/12/2006, 06:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: dll en jar

No lo he probado nunca, pero aquí está:

http://java.sun.com/j2se/1.5.0/docs/...html#resources
Cita:
A nativelib element specifies a JAR file that contains native libraries. For example:

<nativelib href="lib/windows/corelib.jar"/>

The JNLP client must ensure that each file entry in the root directory of the JAR file (i.e., /) can be loaded into the running process using the System.loadLibrary method. Each entry must contain a platform-dependent shared library with the correct naming convention, e.g., *.dll on Windows or lib*.so on Solaris/Linux. The application is responsible for doing the actual call to System.loadLibrary.

Native libraries would typically be included in a resources element that is geared toward a particular operating system and architecture. For example:

<resources os="SunOS" arch="sparc">
<nativelib href="lib/solaris/corelibs.jar"/>
</resource>

By default, jar and nativelib resources will be downloaded eagerly, i.e., they are downloaded and available locally to the JVM running the application before the application is launched. The jar and nativelib elements also allow a resource to be specified as lazy. This means the resource does not have to be downloaded onto the client system before the application is launched.
Parece que lo que hay que hacer es meterla dentro de un jar, pero supongo que unicamente por compresion y nomenclatura. No lo he probado nunca.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.