3
votes

Comment exécuter deux versions différentes de Java simultanément sur OS-X?

Je ne savais pas si je devais mettre cela sur Superuser ou Stack Overflow, mais j'ai opté pour ici car cela concerne le développement de logiciels concernant le Langage de programmation Gosu .

Le langage de programmation Gosu nécessite Java 8 et n'accepte pas Java 11 ou les versions supérieures du JDK / JRE (je ne sais pas laquelle est pertinente). C'est un problème parce que j'ai Java 11 et que l'équipe de développement a laissé ce problème persister pendant longtemps. Il est sur le suivi des bogues et personne n'a rien fait à ce sujet depuis longtemps.

Je dois mettre en place un environnement de développement avec Java 8 et Java 11, installer Gosu dans l'environnement avec Java 8, puis comprendre comment modifier le code source de Gosu pour qu'il soit compatible avec Java 11. Y a-t-il des des conseils de personnes qui ont réalisé des développements et des projets similaires?


1 commentaires

Je ne sais rien de Gosu, mais un problème au moins est qu'il semble essayer de personnaliser l'apparence de Windows lorsqu'il est exécuté sur macOS. Le JDK n'inclut pas le LAF Windows sur les plates-formes non Windows depuis plusieurs versions.


3 Réponses :


2
votes

Je téléchargerais docker et configurerais des conteneurs Docker séparés pour chacun de vos environnements jdk. Et puis dans celui qui convient, ajoutez toutes les autres dépendances du projet de langage gosu. les conteneurs docker garderont les ensembles de dépendances séparés et les empêcheront d'interférer les uns avec les autres.


0 commentaires

2
votes

Cela peut être séparé en 3 problèmes

  1. Installation de plusieurs versions de JDK
  2. Par défaut par projet pour votre propre développement
  3. Sélection d'une version spécifique lors de l'exécution sous OSX

Pour le développement principalement local, vous voulez probablement un flux comme

Installez plusieurs versions de JDK avec brew

$ /usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc14/Contents/Home

Choisissez entre puis pour votre développement avec jEnv (fonctionne bien avec bash) https://www.jenv.be/

Pour les scripts, s'ils sont exécutés sous OSX, utilisez java_home

$ brew cask install caskroom/versions/java11
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

$ ls /Library/Java/JavaVirtualMachines/
adoptopenjdk-12-openj9.jdk graalvm-ce-1.0.0-rc14      jdk1.8.0_65.jdk            openjdk-11.0.2.jdk


0 commentaires

3
votes

Concernant Gosu et Java 11, la dernière version de Gosu 1.15. 0 prend en charge Java 11 exclusivement.


1 commentaires

Je suppose que c'est la vraie réponse.