Java
Java ist eine ursprünglich von Sun Microsystems entwickelte Programmiersprache, die eine Laufzeitumgebung verwendet, um die Ausführung von in Java entwickelten Anwendungen auf verschiedenen Plattformen zu ermöglichen. Es ist eine beliebte Wahl für Entwickler, die plattformübergreifende Anwendungen erstellen wollen.
Was ist Java?
Übersicht
Java ist eine Programmiersprache die von Sun Microsystems entwickelt wurde. Die Sprache ist objektorientiert. Javaprogramme sind auf verschiedenen Platformen lauffähig, ohne das sie neu kompiliert werden müssen. Es ist zwar möglich Javacode für spezielle Platformen zu kompilieren, aber gerade die Portabilität ist, neben etwa der automatischen Speicherverwaltung, ein Grund für Javas Popularität. Um die Platformunabhängigkeit zu gewährleisten, erstellt der Javacompiler sogenannten "Java Bytecode". Dies ist eine Zwischenstufe zwischen Quelltext und ausführbarem Binärformat. Dieser Bytecode wird nicht direkt vom Betriebssystem sondern in einer JVM (Java Virtual Machine) ausgeführt.
Um Java Bytecode auszuführen, muss ein JRE (Java Runtime Environment) installiert sein. Dies stellt die nötigen Bibliotheken sowie die platformabhängige JVM bereit. Ein JDK (Java Development Kit) enthält zusätzliche Entwicklungswerkzeuge, etwa einen Java Bytecode Compiler und einen Debugger.
JVM-Sprachen
Die Java Virtual Machine wird nicht ausschließlich von der Java Programmiersprache verwendet. Mehrere Programmiersprachen verwenden die Java-Plattform und laufen auf der JVM. Beispiele für solche Sprachen sind: Clojure, Apache Groovy, Kotlin oder Scala.
Eine virtuelle Maschine installieren
Die Auswahl
Gentoo bietet viele verschiedene Java Laufzeitumgebungen (JREs) und Java Development Kits (JDKs) an. Unter anderem sind dies:
Anbieter | JRE | |
---|---|---|
IcedTea Offenes Java SE (ehemals icedtea6-bin) | dev-java/icedtea und dev-java/icedtea-bin | |
OpenJDK | dev-java/openjdk und dev-java/openjdk-bin | |
Oracles Java | dev-java/oracle-jdk-bin | dev-java/oracle-jre-bin |
Der GCJ IcedTea GNU GCC Java (derzeit IcedTea-7) | dev-java/icedtea sys-devel/gcc USE="gcj" |
| The IcedTea Open Java SE (formerly icedtea6-bin) | dev-java/icedtea and dev-java/icedtea-bin |-
| OpenJDK | dev-java/openjdk and dev-java/openjdk-bin |-
|}
Ein JRE/JDK installieren
Um das Standard JDK des Profils zu installieren, führen Sie dies aus:
root #
emerge --ask virtual/jdk
Um die Standard JRE des Profils zu installieren, führen Sie dies aus:
root #
emerge --ask virtual/jre
Beachten Sie, dass jedes JDK ein JRE enthält; die Installation eines JRE ist nicht notwendig, wenn ein JDK emerged wurde.
Einrichten eines Headless JRE
Manchmal besteht kein Bedarf an einem vollständigen JRE mit allen Funktionen von Java. Die Verwendung von Java auf einem Server erfordert oft keine GUI-, Grafik-, Sound- oder sogar Drucker bezogenen Funktionen. Um eine vereinfachte (manchmal auch als headless bezeichnete) JRE zu installieren, müssen einige USE-Flags für die ausgewählte JRE-Variante geändert werden.
/etc/portage/package.use
Erforderliche USE-Flag-Änderungendev-java/icedtea headless-awt -alsa -cups
dev-java/icedtea-bin headless-awt -alsa -cups
dev-java/oracle-jre-bin headless-awt -alsa -cups
Abhängig vom aktuellen Gentoo-Profil könnte dies bereits der Fall sein. Wie üblich können die USE-Flag-Einstellungen, die für ein bestimmtes Paket gelten, überprüft werden, indem man emerge im Pretend-Modus ausführt:
user $
emerge --pretend --verbose virtual/jre
Die Java Virtual Machine konfigurieren
Übersicht
Gentoo bietet die Möglichkeit mehrere JDKs oder JREs parallel zu benutzen.
Setzen der Standard virtuellen Maschine
Wenn Sie den Befehl java-config mit der Option --list-available-vms
ausführen, erhalten Sie eine Liste aller auf dem System installierten JREs und JDKs. Hier ist ein Beispiel für die Ausgabe:
root #
java-config --list-available-vms
The following VMs are available for generation-2: 1) IcedTea JDK 7.2.6.3 [icedtea-7] 2) IcedTea JDK 3.0.1 [icedtea-8]
Der * markiert die aktuelle JVM (Systemweit oder für den Benutzer, falls gesetzt). Der Name in eckigen Klammern ist das Handle der entsprechenden VM. Mit java-config --set-system-vm und dem Handle oder der ID kann die aktuelle VM gesetzt werden. Hier ist ein Beispiel:
root #
java-config --set-system-vm icedtea-7
Now using icedtea-7 as your generation-2 system JVM
Alternative Methode: Auswahl der VM nach der Nummer des Handles:
root #
java-config --set-system-vm 3
Now using icedtea-7 as your generation-2 system JVM
source-ing des Profils für bestehende Shell-Sitzungen ist normalerweise nicht erforderlich, wenn Sie die Benutzer- oder System-VM ändern. Die einzige Ausnahme ist, dass Variablen wie JAVA_HOME immer noch auf den alten Ort verweisen oder zur System-VM zurückkehren, nachdem eine Benutzer-VM zum ersten Mal gesetzt wurde
.
Java Browser Plugins
The Java plugin support had been deprecated in JDK 9[1].
For those who need a Java-enabled browser for a specific use case, there is e.g. palemoon
/palemoon-bin
available in the palemoon
overlay, which has long-term support for NPAPI and thus Java plugins up to JDK 8[3].
USE-Flags für Java
Setzen der USE-Flags
Für mehr Informationen über USE-Flags sei auf das USE-Flag Kapitel im Gentoo-Handbuch verwiesen.
USE-Flags
- Der
java
Flag fügt Unterstützung für Java in einer Vielzahl von Programmen hinzu; - Der
nsplugin
Flaf fügt Unterstützung für Mozilla-ähnliche Browser (einschließlich Firefox) hinzu. Dies ist für die Anzeige von Java-Applets in einem Mozilla-ähnlichen Browser erforderlich; - Der
jce
Flag fügt Unterstützung für die Java Cryptography Engine hinzu;
Following USE flags go in JAVA_PKG_IUSE, see Gentoo Java USE flags for details and other specific USE flags of Java:
Troubleshooting
Minecraft launcher errors
- A specific error in which
minecraft-launcher
crashed after a few seconds, throwing "Alarm" and "SaveToBuffer failed" error was solved by setting the USE flagthreads
for net-misc/curl.
- When executing
minecraft-launcher
the following error was produced:
user $
./minecraft-launcher
[0229/184549.183275:ERROR:sandbox_linux.cc(346)] InitializeSandbox() called with multiple threads in process gpu-process.
This was solved by executing minecraft-launcher
with the following option:
user $
MESA_GLSL_CACHE_DISABLE=true ./minecraft-launcher
Siehe auch
- Java Developer Guide — covers specific details on Gentoo Java ebuilds.
- Project:Java/Why build from source
- Project:Java/Getting Involved
Externe Ressourcen
- Die gentoo-java, gentoo-user, und gentoo-dev Mailinglisten-Archive
- #gentoo (webchat) und #gentoo-java (webchat) über IRC
- Java 7 and bootstrapping icedtea im Gentoo Forum
Weitere Informationen können offline abgerufen werden:
- man java-config
- java-config --help
Wenn Sie Vorschläge oder Fragen zu diesem Dokument haben, senden Sie bitte eine E-Mail an das Gentoo Java Team: java@gentoo.org
Referenzen
- ↑ JDK 9 and the Java Plugin, java.com. Retrieved on November 30, 2018
- ↑ How do I enable Java in my web browser?, java.com. Retrieved on November 30, 2018
- ↑ Pale Moon future roadmap, palemoon.org. Retrieved on June 28, 2019
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Joshua Nichols, Karl Trygve Kalleberg, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.