5 votos

En MacOS, ¿cómo ejecutar un archivo JNLP con OpenJDK 8?

Debido a la nueva licencia de OracleJDK8 Tengo que usar OpenJDK8. He instalado AdoptOpenJDK8 de Homebrew y funciona bien.

El problema es que tengo que lanzar una aplicación Java desde un enlace JNLP, lo que se llama Inicio de la web en Java . El problema es que esta característica no está incluida en el OpenJDK8.

Java Web Start está implementado en el proyecto IcedTea-Web pero no encuentro ningún binario para MacOS y al intentar construirlo obtengo el mensaje

configure: error: "OS darwin18.2.0 is not supported"

Mi pregunta es: ¿Cómo puedo ejecutar un archivo JNLP con OpenJDK 8? ¿Necesito usar IcedTea-Web y si es así cómo construirlo?

10voto

Muhammet Can Puntos 131

IcedTea-Web es un proyecto que:

proporciona un plugin de navegador web de Software Libre que ejecuta applets escritos en el lenguaje de programación Java y una implementación de Java Web Start, originalmente basada en el proyecto NetX.

pero no hay una versión para MacOS. Sin embargo, la parte importante de esta aplicación está escrita en Java para que podamos ejecutarla directamente en MacOS. Aquí está cómo:

Obtenga la compilación de Debian de la versión estable:

wget http://ftp.us.debian.org/debian/pool/main/i/icedtea-web/icedtea-netx-common_1.6.2-3.1_all.deb

Extraiga el archivo deb:

tar xzvf icedtea-netx-common_1.6.2-3.1_all.deb

Extraer el archivo data.tar.xz que está dentro del archivo deb:

tar xzvf data.tar.xz

Vaya al directorio donde está el archivo jar principal:

cd usr/share/icedtea-web/

y simplemente ejecuta tu archivo jnlp:

java -cp netx.jar net.sourceforge.jnlp.runtime.Boot -Xnofork -jnlp my_application.jnlp

Dependiendo de su aplicación podría tener que cambiar las opciones. Puede enumerarlas con:

java -cp netx.jar net.sourceforge.jnlp.runtime.Boot

lo que da como resultado:

SYNOPSIS
    javaws [-run-options] jnlp file
    javaws [-control-options]

OPTIONS
    When specifying options, the name of the jnlp file can be after the command, the -jnlp option, an option with no arguments, or after an argument with an option that takes one argument. A html file that launches a jnlp can be specified after the -html option.
    The jnlp-file can either be a url or a local path.
    The JNLP file should only be specified once, whether as a main argument, after -jnlp or through an html file.
    Control options:
    -about               - Shows a sample application.(No argument expected)
    -help                - Prints out information about supported command and basic usage.(No argument expected)
    -license             - Display the GPL license and exit.(No argument expected)
    -viewer              - Shows the trusted certificate viewer.(No argument expected)
    -Xclearcache         - Clean the JNLP application cache.(No argument expected)
    Run options:
    -allowredirect       - Follows HTTP redirects.(No argument expected)
    -arg arg             - Adds an application argument before launching.(Expected one or more arguments)
    -headless            - Disables download window, other UIs.(No argument expected)
    -html                - Location of HTML file to launch (url or file). You can use parameter ALL  or numbers (like 1 2 5) to select applets on page. However experimental, this switch should keep you still in safety.(Expected one or more arguments)
    -jnlp                - Location of JNLP file to launch (url or file).(Exactly one argument expected)
    -nosecurity          - Disables the secure runtime environment.(No argument expected)
    -noupdate            - Disables checking for updates.(No argument expected)
    -param name=value    - Adds an applet parameter before launching.(Expected one or more arguments)
    -property name=value - Sets a system property before launching.(Expected one or more arguments)
    -strict              - Enables strict checking of JNLP file format.(No argument expected)
    -update seconds      - Check for updates.(Exactly one argument expected)
    -verbose             - Enable verbose output.(No argument expected)
    -version             - Print the IcedTea-Web version and exit.(No argument expected)
    -Xignoreheaders      - Skip jar header verification.(No argument expected)
    -xml                 - Uses a strict XML parser to parse the JNLP file.(No argument expected)
    -Xnofork             - Do not create another JVM.(No argument expected)
    -Xoffline            - Prevent ITW network connection. Only cache will be used. Application can still connect.(No argument expected)
    -Xtrustnone          - Instead of asking user, will foretold all answers as no.(No argument expected)

Actualización

En el futuro, debería poder utilizar Abrir Web Start que es una reimplementación de código abierto de la tecnología Java Web Start. Pero por ahora la instalación en MacOS no está lista. Compruebe el correspondiente Tema de GitHub para más detalles.

2voto

rogerdpack Puntos 211

Parece que una opción reciente para ejecutar archivos webstart .jnlp con Corretto (u OpenJDK) es descargar la opción "portable" de IcedTea-Web, luego descomprímelo, dentro de eso hay un archivo bin/javaws.sh.

Abre una consola, cd a la papelera, entonces puedes ejecutar el archivo .sh (o .bat para Windows).

bin $ ./javaws.sh /full/path/to/downloaded.file.jnlp

Si consigues

warning, using portable itw from /Users/packrd/Downloads/188/icedtea-web-image: -Xbootclasspath/a:/Users/packrd/Downloads/188/icedtea-web-image/share/icedtea-web/javaws.jar:/Users/packrd/Downloads/188/icedtea-web-image/share/icedtea-web/plugin.jar:/Users/packrd/Downloads/188/icedtea-web-image/share/icedtea-web/jsobject.jar:/Users/packrd/Downloads/188/icedtea-web-image/linux-deps-runtime/tagsoup.jar:/Users/packrd/Downloads/188/icedtea-web-image/linux-deps-runtime/js.jar /Users/packrd/Downloads/188/icedtea-web-image/bin/javaws.sh /Users/packrd/Downloads/188/icedtea-web-image/share/icedtea-web/javaws_splash.png
./javaws.sh: line 101: [: : integer expression expected
./javaws.sh: line 104: [: : integer expression expected
./javaws.sh: line 200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java: No such file or directory
./javaws.sh: line 200: exec: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java: cannot execute: No such file or directory

Esto significaba "establecer su env var JAVA_HOME"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X