29 votes

Configurer correctement Java 9 en tant que SDK dans Intellij IDEA sous Linux en raison de la nouvelle structure de dossiers

Avant de m'écrire, merci de considérer qu'aucune de ces sont les réponses à ma question:


Dans IntelliJ IDEA 2017.2.6, en essayant d'ajouter des JDK9 comme un SDK passe, mais ne fonctionne pas comme les chemins de classe de fin vide. Étapes pour reproduire:

  1. Ouvrir "Ajouter un nouveau SDK de dialogue"
    (allez dans Réglages du Projet > Projet > Projet SDK > Nouveau > JDK)
  2. Sélectionnez JDK 9
    select jdk dialog
  3. Passe, mais si vous regardez sous SDK > JDK9 les chemins de classe sont vides et votre code d'erreurs dues à des classes de base n'est pas trouvé. Voir image:
    no classpaths

Dans IntelliJ IDEA 2017.3 EAP vous obtenez un message d'erreur sur les classes du JDK n'est pas trouvé. Voir les images ci-dessous:

  1. Ouvrir "Ajouter un nouveau SDK de dialogue"
    (allez dans Réglages du Projet > Projet > Projet SDK > Nouveau > JDK)
  2. Sélectionnez JDK 9
    select jdk dialog
  3. Devrait passer, mais produit des popup d'erreur
    jdk error popup

Ligne de commande de compilation de l'exemple HelloWorld avec jdk9 fonctionne comme prévu.

EDIT: Trouvé un presque-en double: Intellij IDEA 2017.2 ne pouvez pas ajouter de openjk 9 sur Linux Mint 18. Principales différences:

  • La version Linux: ils sont l'aide à la Menthe de 18 ans, et je suis en utilisant Debian Stretch.
  • OpenJDK est la dernière de la mise en pension à la date de rédaction: 9~b181-4~bpo9+1. Même si la version est identique, il ne fonctionne toujours pas dans mon cas.

EDIT: un Autre double possible: intellij idea ne pas voir java 9 classes standard

Je n'ai pas compris la réponse dans les commentaires si. Essayé de réglage des noms différents pour JDK (9 et 1.9), mais il n'a toujours pas montrer modules au lieu de chemins de classe et les chemins de classe est restée vide.

28voto

hajk1 Points 1

Actuel paquet binaire debian openjdk-9-jre-headless 9~b181-4 contient incorrectement compilé lib/jrt-fs.jar fichier.
Il y a 2 déposé questions séparément sur les deux idée youtrack et aussi ubuntu launchpad.

Comme il est indiqué ici:

Raison Probable:
Classes dans lib/jrt-fs.jar ont été compilées par Java 9, avec les options "-source 8"/"target 8". Ils doivent être compilés avec "--version 8" option à la place (ou en Java 8)

Une solution de contournement temporaire peut être remplacer /usr/lib/jvm/java-9-openjdk-amd64/lib/jrt-fs.jar avec l'un de Oracle JDK.
Vous pouvez également essayer de recompiler le openjdk-9 du code source en utilisant le conseillé option "--version 8".

De toute façon je le conseil à voter cette question sur le lien ci-dessus pour attirer plus d'attention par l'équipe de dev.

5voto

Makoto Points 23751

Utilisation d'Oracle Java au lieu de OpenJDK pour l'instant. Tu peux tirer en travers de WebUpd8 du référentiel.

sudo add-apt-repository ppa:webupd8team/java &&
sudo apt-get update &&
sudo apt-get install oracle-java9-installer

Il ne ressemble pas à ce qui se passe au travail avec OpenJDK, donc si vous voulez jouer avec la dernière et la plus grande Java, cela va être la façon de le faire pour l'instant. Sinon, à partir de ce que j'ai vu, vous avez fait ceci correctement, et une fois que cela devient réellement fixe, il fonctionne très bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X