the - Configure correctamente Java 9 como SDK en Intellij IDEA en Linux debido a la nueva estructura de carpetas
intellij platform plugin sdk (2)
Antes de despedirme, tenga en cuenta que ninguna de estas son respuestas a mi pregunta:
En IntelliJ IDEA 2017.2.6, el intento de agregar JDK9 como SDK pasa, pero no funciona, ya que los classpath terminan vacíos. Pasos para reproducir:
- Abra ''Agregar nuevo diálogo de SDK''
(vaya a Configuración del proyecto> Proyecto> Proyecto SDK> Nuevo> JDK) - Seleccione JDK 9
- Pases, pero si miras en SDK> JDK9, los classpaths están vacíos y tu código falla debido a que no se encuentran las clases base. Ver imagen:
En IntelliJ IDEA 2017.3 EAP, se produce un error al no encontrar las clases JDK. Ver imágenes a continuación:
- Abra ''Agregar nuevo diálogo de SDK''
(vaya a Configuración del proyecto> Proyecto> Proyecto SDK> Nuevo> JDK) - Seleccione JDK 9
- Debería pasar, pero produce error emergente
La compilación de línea de comando del ejemplo HelloWorld con jdk9 funciona como se esperaba.
EDITAR: Encontré casi un duplicado: Intellij IDEA 2017.2 no puede agregar openjk 9 en Linux Mint 18 . Diferencias clave:
- Versión de Linux: están usando Mint 18, y estoy usando Debian Stretch.
- OpenJDK es el último del repositorio en el momento de la escritura: 9 ~ b181-4 ~ bpo9 + 1. Aunque es la misma versión, todavía no funciona en mi caso.
EDITAR: Otro duplicado posible: idea intellij no ve clases estándar java 9
Aunque no entendí la respuesta de los comentarios. Intenté establecer diferentes nombres para JDK (9 y 1.9), pero aún no mostraba módulos en lugar de classpaths y classpaths permanecían vacíos.
El paquete binario actual de Debian openjdk-9-jre-headless 9 ~ b181-4 contiene un archivo lib / jrt-fs.jar compilado incorrectamente.
Hay 2 problemas archivados por separado tanto en la idea de youtrack como en el launchpad de ubuntu .
Como se indica aquí :
Razón probable:
Las clases en lib / jrt-fs.jar fueron compiladas por Java 9 con las opciones "-source 8" / "target 8". Deben compilarse con la opción "--enlease 8" en su lugar (o con Java 8)
Una solución temporal puede reemplazar /usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar con la de Oracle JDK .
También puede intentar recompilar la fuente openjdk-9 usando la opción recomendada " --release 8 ".
De todos modos, aconsejo votar sobre este tema en el enlace anterior para atraer más atención por parte del equipo de desarrollo.
Use Oracle Java en lugar de OpenJDK por ahora. Puede obtener eso a través del repositorio de WebUpd8 .
sudo add-apt-repository ppa:webupd8team/java &&
sudo apt-get update &&
sudo apt-get install oracle-java9-installer
No parece que esto vaya a funcionar con OpenJDK, así que si quieres jugar con la última y mejor Java, esta será la forma de hacerlo por el momento. De lo contrario, por lo que he visto, has hecho esto correctamente y una vez que esto se arregle, funcionará bien.