Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

579
Visualizações
¿Por qué la imagen de tiempo de ejecución (ensamblada por jlink) para mi aplicación JavaFX no se inicia y no funciona correctamente?

Tengo un navegador web JavaFX simple que es un módulo. La estructura de directorios del módulo es:

 webBrowser webBrowser/module-info.java webBrowser/webbrowser webBrowser/webbrowser/WebBrowser.java

Aquí está el código para module-info.java

 module webBrowser { requires javafx.controls; requires javafx.web; exports webbrowser; }

Aquí está el código para WebBrowser.java:

 package webbrowser; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.web.WebView; import javafx.scene.web.WebEngine; import javafx.stage.Stage; public class WebBrowser extends Application { @Override public void start(Stage stage) { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); webEngine.load("http://www.oracle.com"); Scene scene = new Scene(browser, 1200, 900); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } }

Compilo mi aplicación modular con javac:

 % javac -d out --module-source-path . --module-path $JAVAFX --module webBrowser

Puedo iniciar mi aplicación con Java y funciona bien:

 % java --module-path out:$JAVAFX/lib --module webBrowser/webbrowser.WebBrowser

El problema comienza cuando intento ensamblar mi módulo (webBrowser) y los módulos JavaFX usando jlink:

 % jlink --module-path out:$JAVAFX/lib --add-modules webBrowser,javafx.controls,javafx.web --output myjre % myjre/bin/java --list-modules java.base@17.0.1 java.datatransfer@17.0.1 java.desktop@17.0.1 java.net.http@17.0.1 java.prefs@17.0.1 java.xml@17.0.1 javafx.base javafx.controls javafx.graphics javafx.media javafx.web jdk.jsobject@17.0.1 jdk.unsupported@17.0.1 jdk.xml.dom@17.0.1 webBrowser % myjre/bin/java --module webBrowser/webbrowser.WebBrowser Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:254) at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:264) at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:291) at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:163) at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:659) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:410) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071) Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125) at java.base/java.lang.Thread.run(Thread.java:833) Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071) Caused by: java.lang.RuntimeException: No toolkit found at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:276) at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:291) at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:163) at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:659) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:410) at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364) ... 5 more

Cuando ejecuto mi aplicación vinculada (arriba), obtengo esta RuntimeException:

 java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found

Notas sobre el montaje

Estoy usando jlink para ensamblar tres módulos: javafx.controls, javafx.web y webBrowser.

Pregunta

Mi aplicación funciona bien con Java. Se inicia y funciona correctamente cuando uso este comando:

 % java --module-path out:$JAVAFX/lib --module webBrowser/webbrowser.WebBrowser

Pero recibo un mensaje de error (Error al inicializar QuantumRenderer: no se encontró una canalización adecuada) cuando intento iniciar la imagen en tiempo de ejecución:

 % myjre/bin/java --module webBrowser/webbrowser.WebBrowser

¿Por qué aparece este mensaje de error cuando intento iniciar la imagen de tiempo de ejecución? ¿Cómo puedo hacer que mi navegador web se ensamble y se inicie correctamente?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Consulte este problema relacionado en el rastreador de openjfx e intente seguir los consejos y los pasos de solución de problemas que se encuentran allí.

Especialmente esta sección sobre la descarga y el uso de los archivos mod en lugar del sdk.

La razón es que está empaquetando los "mods" del SDK, que no tienen las bibliotecas nativas (en el SDK, tenemos jars y bibliotecas nativas).

Puede descargar los módulos JavaFX como jmods, incluidas las clases y las bibliotecas nativas.

Ver:

  • https://gluonhq.com/products/javafx/

y descargue los mods (en lugar del SDK).

A continuación, apunta jlink al directorio de mods.

Aparentemente, el paquete SDK es diferente a otros tipos de distribución como Maven. El paquete SDK separa las clases de Java y las bibliotecas nativas, mientras que el paquete para otras plataformas de entrega no lo hace, por lo que puede ejecutar el SDK, pero no vincularlo.

Consulte la sección de documentos de openjfx sobre cómo crear un tiempo de ejecución desde la línea de comandos. La ruta a usar en el comando jlink se da como

 --module-path $PATH_TO_FX_MODS:mods

no

 --module-path out:$JAVAFX/lib
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda