este problema se puede abordar de variadas formas, pero nosotros te damos la que en nuestra opinión es la respuesta más completa.
Solución:
Voy a ejecutar la muestra de HelloFX para Eclipse desde las muestras de OpenJFX.
Después de abrir la muestra con VSCode, veo el error informado: [Java] The import javafx cannot be resolved [268435846]
.
Esto obviamente significa que las clases de JavaFX no se resuelven, e incluso si hay una entrada en el archivo .classpath:
esta biblioteca no se puede resolver.
Resolviendo JavaFX SDK
Así que voy a reemplazar esa variable con los frascos reales de mi SDK JavaFX local:
Después de actualizar el proyecto, puedo ver debajo JAVA DEPENDENCIES
estos frascos.
Si bien el error parece resuelto, el proyecto aún no se construye.
Resolviendo JRE
Necesitamos configurar JDK 11 para el proyecto, así que descárguelo desde aquí. Luego abra Eclipse y agréguelo a los JRE instalados. Veo debajo Java -> Installed JREs -> Execution Environments
que el nombre de la versión 11 es JavaSE-11
.
El .classpath
El archivo del proyecto helloFX también contiene una referencia al JRE:
así que voy a reemplazar JDK11
con JavaSE-11
y actualice el proyecto. Puedo ver debajo JAVA DEPENDENCIES
que hay una referencia a JRE System Library [JavaSE-11]
.
Resolviendo JAVA_HOME
Necesitamos configurar el java.home
en VSCode.
Esto se puede hacer en el settings.json
desde `Preferencias-> Configuración-> Configuración del espacio de trabajo:
"java.dependency.packagePresentation": "hierarchical",
"java.home":"/Users//Downloads/jdk-11.0.2.jdk/Contents/Home"
Después de modificarlo, aparecerá una ventana emergente con el mensaje Java Language Server configuration changed, please restart VS Code.
, así que reinícielo.
Probándolo
Podemos ver que no hay errores, incluso hay un bin
carpeta con el resultado de la compilación que VSCode hace automáticamente.
¿Podemos ejecutarlo? Si lo probamos, obtendremos un error:
Error: JavaFX runtime components are missing, and are required to run this application
Este es el error que obtiene cuando usa JavaFX 11 sin especificar la ruta del módulo.
Resolver argumentos de VM
El paso final consiste en agregar los argumentos vm requeridos.
Esto se puede hacer en el launch.json
Archivo. Contiene una configuración por defecto, que podemos modificar añadiendo una nueva entrada para el vmArgs
incluyendo el --module-path
con la ruta local al SDK de JavaFX y --add-modules
con los módulos JavaFX necesarios:
"configurations": [
"type": "java",
"name": "CodeLens (Launch) - Main",
"request": "launch",
"vmArgs": "--module-path /Users//Downloads/javafx-sdk-11.0.2/lib
--add-modules javafx.controls,javafx.fxml",
"mainClass": "hellofx.Main",
"projectName": "hellofx"
]
Ahora tenemos todo listo.
Ejecute el proyecto nuevamente y debería funcionar.
Tenga en cuenta que soy un usuario de VSCode por primera vez, por lo que es posible que me haya perdido algo obvio, y tal vez algunos de estos pasos podrían evitarse o simplificarse.