por imagenes imagen google busqueda buscar avanzada native java jnlp

imagenes - Actualizar a JRE7, no se puede cargar el tarro nativelib, pero JRE6 funciona bien



google imagenes busqueda avanzada (4)

Para mi archivo JNLP, hay alguna información nativelib como a continuación:

<resources os="Windows"> <nativelib href="lib/x264-win.jar" /> </resources> <resources os="SunOS" arch="sparc"> <nativelib href="lib/x264-SunOS-sparc.jar" /> </resources> <resources os="SunOS" arch="x86"> <nativelib href="lib/x264-SunOS-x86.jar" /> </resources>

Cuando actualizo a JRE7, no puedo cargar el tarro nativelib, pero JRE6 funciona bien.

El código de carga nativelib como abajo:

String source = "x264.jar"; ClassLoader cl = Thread.currentThread().getContextClassLoader(); URL url= cl.getResource(source);

"x264.jar" es un jar en x264-win.jar, lib / x264-SunOS-sparc.jar o lib / x264-SunOS-x86.jar.

Cuando usé JRE6 para cargar x264.jar, funcionó bien. Pero cuando actualicé a JRE7, no se puede cargar x264.jar.

Cuando use JRE6, url sería información "x264.jar", como jar: http://test.local:8080/JNLP.jar!/x264.jar , pero use JRE7, url sería nulo, y no encontré el código cargar nativelib "x264.jar"

¿Alguien ha encontrado que JRE7 no puede cargar nativelib.jar? ¿El problema de usar Thread.currentThread (). GetContextClassLoader () para cargar "x264.jar"?


Asegúrese de tener el binario nativo bitwise correcto para que coincida con su JRE. Si está probando en un JRE de 64 bits, necesita un binario nativo de 64 bits. Si está probando en un JRE de 32 bits, necesita un binario nativo de 32 bits. Es posible que deba incluir recursos para cada uno de estos tres:

<resources os="Windows" arch="amd64"> <resources os="Windows" arch="x86_64"> <resources os="Windows" arch="x86">


El siguiente applet "confiando en dll" funciona bien (además de los problemas de seguridad cuando se usa 1.7.0_51 (es necesario reducir la configuración de seguridad a medio ya que está autofirmado)). Entonces, si el mecanismo de carga de archivos nativo del archivo jnlp no funciona, entonces puede distribuir sus archivos .dll junto con un archivo jar normal, como en el ejemplo superior.

  1. Ponga los dlls / sos en su archivo jar como en el ejemplo: jssc.jar
  2. Cargue las bibliotecas con System.load(libFolderPath + fileSeparator + libName); Como se usa here .
  3. Como mencionó Joseph, tenga en cuenta la diferenciación de la versión de grano fino entre los sistemas win, solaris, linux, arm y i86 y amd64 bit. Así que si, por ejemplo, no proporciona un archivo DLL de 64 bits y lo ejecuta con Java de 64 bits, no funcionará ...

Me había olvidado que solucioné esto hace un tiempo. Descubrí que tenía que manejar esto en el código Java con System.loadLibrary ("jarNameNoExtension");

Esperemos que eso ayude a los demás.


Tuve problemas similares; Sin embargo, incluso en JRE 6 esto no consiguió que esto funcionara.

Encontré un error que podría estar relacionado con eso:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6758884

Al parecer, JRE puede tener problemas para descargar recursos nativelib.

El error aún está abierto y está orientado hacia la versión 8 de Java ...