TechSupport
Crownpeak employee
Crownpeak employee

Verwaltung von Java (JDK) unter Mac OS X

Insbesondere für Entwickler ist es oft notwendig, mehrere Versionen von Java auf einer Maschine zu verwalten, um bspw. Features in verschiedenen Java Versionen zu testen. Dies mit der Standardfunktionalität von Mac OS X zu tun ist sehr aufwändig, mit den richtigen Werkzeugen wird es jedoch auf einmal sehr einfach.

Ein gutes Werkzeug, das auch bei e-Spirit genutzt wird, ist jenv. jenv erlaubt es, mehrere Versionen von Java zu installieren und zwischen diesen zu wechseln. Beim Wechsel wird dabei, mit Hilfe des mitgelieferten Command Line Interface, ein symbolischer Link auf die gewünschte Version gesetzt.

Installation von jenv

jenv zu installieren ist denkbar einfach über das entsprechende GitHub Repository oder mit Homebrew zu bewerkstelligen.

# GitHub

$ git clone https://github.com/gcuisinier/jenv.git ~/.jenv

# Homebrew

$ brew install jenv

Um jenv zu aktivieren, muss die .bash_profile wie folgt angepasst werden. Befehle für andere Shells finden sich auf der jenv Website.

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Installation der JDKs

Mit einem ordnungsgemäß installierten jenv sind die letzten, fehlende Schritte, die gewünschten JDKs zu installieren und diese in jenv verfügbar zu machen.

JDKs zu installieren kann auf verschiedene Wege erfolgen. Ein guter Weg ist auch hier wieder der über Homebrew in Kombination mit Homebrew Cask.

# Latest Java

$ brew cask install java

# Latest Java 7

$ brew cask install java7

# Latest Java 6

$ brew cask install java6

Zu guter Letzt sind die installierten JDKs bei jenv zu registrieren und damit nutzbar zu machen.

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0_60.jdk/Contents/Home

Verwendung

Nachdem alles installiert und konfiguriert wurde, listet jenv versions die verfügbaren JDKs auf, wobei die aktuell genutzte Version mit einem Sternchen (*) markiert ist. Man kann dies jederzeit mit java -version gegenprüfen.

$ jenv versions

  system

  oracle64-1.6.0.65

* oracle64-1.7.0.79 (set by /Users/username/.jenv/version)

  oracle64-1.8.0.60

Es ist möglich die globale Standard-Version von Java zu ändern sowie lokale Versionen auf Verzeichnis-Ebene zu definieren. Beim Setzen einer lokalen Version wird diese in einer .java-version Datei des aktuellen Verzeichnisses gespeichert.

Beim Ausführen von java ermittelt jenv die zu nutzende Version, indem eine .java-version Datei im aktuellen Verzeichnis gesucht wird. Ist diese nicht vorhanden, wird im überliegenden Verzeichnis gesucht und so weiter. Konnte in der Vaterkette keine .java-version Datei gefunden werden, nutzt jenv die globale Standard-Version.

# Set global default version

$ jenv global oracle64-1.7.0.79

# Set local version

$ jenv local oracle64-1.8.0.60

Labels (1)