Error al invocar el método, no se pudo ejecutar jvm

Estoy desarrollando una aplicación de escritorio usando javafx v8.0.40. He creado un archivo exe con inno 5. Cuando ejecuto el archivo exe en mi computadora, se instala y se ejecuta sin ningún problema. Por otro lado, cuando bash instalarlo y ejecutarlo en otra computadora, al final de la instalación, aparece el cuadro de diálogo de la ventana: “Método de invocación de error”, hago clic en Aceptar. Aparece otra ventana emergente que dice “Error al iniciar jvm”. Busqué en Internet, pero no pude encontrar mucho sobre este tema. Espero obtener una solución a este problema. Gracias de antemano.

Tuve el mismo problema; lo siguiente funcionó para mí y me ayudó a dar sentido a esos malditos “Método de invocación de error”. y los diálogos de “No se pudo iniciar JVM”:

  1. Encuentre su archivo .jar
    • Tiene el mismo nombre que su proyecto y está en el directorio de instalación de su aplicación en AppData\Local\{ApplicationTitle}\app ( atajo: escriba% appdata% en el explorador ); si su proyecto se llama HelloWorld, allí encontrará HelloWorld.jar
  2. Navega a su directorio en el símbolo del sistema
    • shift + clic derecho en cualquier punto en blanco en la ventana del explorador y elija “Abrir ventana de comandos aquí” (eso es un truco elegante que aprendí recientemente; alternativamente, podría cd al mismo directorio usando el símbolo del sistema)
  3. Ejecute su .jar través de la línea de comando
    • escriba java -jar "HelloWorld.jar" y java -jar "HelloWorld.jar" Enter

Tadah! Contemple sus excepciones ocultas (la existencia de la cual “Método de invocación de error” intenta comunicarle de manera vaga). *

Si su problema es similar al mío, esto se debe a una diferencia de estructura de archivos entre la carpeta de out del proyecto y el directorio de instalación, y es por eso que el progtwig comstack muy bien en el editor y se comstack muy bien; no hay problema hasta que esté completo. y la estructura del archivo es un poco diferente.

* Si no obtuviste nada cuando lo ejecutaste a través de la línea de comando, busca cualquier error que pueda estar ocurriendo durante ese método de initialize() ; ahí es donde probablemente está tu problema. Puede exponer cualquier excepción durante el tiempo de ejecución utilizando un cuadro de diálogo emergente de excepción como se muestra en un problema similar, aquí .

Esto es probablemente porque carece de las dependencias en el jar de salida. Así que odias agregar las bibliotecas en el artefacto y luego la generación .exe debería estar bien.

Aquí hay un ejemplo con Intellij, donde las bibliotecas se han movido manualmente de “Elementos disponibles” al artefacto

Ejemplo de Intellij

a pesar de que esta pregunta es un poco antigua, hoy me enfrenté exactamente al mismo problema y no encontré ninguna solución para buscar esos mensajes de error que no sean aquí.

El problema es prácticamente idéntico: Aplicación JavaFX construida (ejecutándose bien en dev pc) usando java 8 y empaquetada en el instalador nativo (exe) usando Inno 5. La aplicación funcionó bien en algunas de nuestras máquinas; en otras falló con las que fallaron. mensajes:

  • “Método de invocación de error” y luego de hacer clic en Aceptar
  • “No se pudo iniciar jvm”.

Al iniciar la aplicación, el cargador de fxml carga el primer controlador de vista y llama a su método de “inicialización”. Si – dentro de la inicialización – se lanza una excepción no modificada, la aplicación se bloquea y se muestran esos dos mensajes de error de Windows.

Espero que esto ayude a alguien que me quiere también está luchando con eso.

La respuesta de J.Dürr (respondida el 8 de junio de 16:00 a las 9:58) ayudó a resolver mi método de invocación de error y no pudo iniciar el problema de JVM . Utilicé el siguiente código para rastrear el problema, que resultó ser una ruta de acceso de recursos de FXML errónea:

 public static void main(final String[] taArgs) { try { Main.launch(taArgs); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); try { PrintWriter pw = new PrintWriter(new File("")); e.printStackTrace(pw); pw.close(); } catch (IOException e1) { e1.printStackTrace(); } } } 

No pude solucionar el problema, pero encontré una forma de evitarlo. Usé el bloc de notas para crear un archivo por lotes para iniciar la aplicación. Primero usé cd para llegar al directorio del archivo .jar y luego usé java -jar para iniciar la aplicación. Debería verse algo como esto:

 cd C:\[wherever your project folder is located]\[name of project]\dist java -jar [name of project].jar 

Guárdelo como un archivo .bat en el escritorio, inicie el archivo por lotes y se iniciará su progtwig.