Java

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Java and the translation is 100% complete.

A Java egy programozási nyelv, amelyet eredetileg a Sun Microsystems fejlesztett ki, és amely platformfüggetlen virtuális gépet használ a Java bájtkód valós idejű végrehajtására. Népszerű választás azon fejlesztők számára, akik platformfüggetlen üzleti alkalmazásokat szeretnének létrehozni.

Mi a Java?

Áttekintés

A Java egy programozási nyelv, amelyet a Sun Microsystems fejlesztett ki. A nyelv objektum-orientált, és úgy tervezték, hogy több platformon is képes legyen futni anélkül, hogy a kódot minden egyes platformra újra kellene fordítani. Bár a Java natív programként is lefordítható, népszerűsége nagy mértékben hordozhatóságának tulajdonítható, valamint olyan további funkcióknak, mint például az automatikus memória-kezelés. A platformfüggetlenség lehetővé tétele érdekében a Java kódfordító a Java kódot egy köztes reprezentációvá, az úgynevezett Java bájtkóddá fordítja le, amely egy JVM-en (Java virtuális gépen) fut, tehát nem közvetlenül az operációs rendszeren.

A Java bájtkód futtatásához szükség van egy JRE (Java Runtime Environment) telepítésére. A JRE biztosítja az alapvető könyvtárakat, egy platformfüggő JVM-et, böngészők számára készült bővítményeket, valamint egyéb funkciókat. A JDK (Java Development Kit) pedig programozási eszközöket, például bájtkód-fordítót és hibakeresőt is tartalmaz.

JVM nyelvek

A Java virtuális gépet (JVM) nem kizárólag a Java programozási nyelv használja. Számos programozási nyelv használja a Java platformot, és a JVM-en fut. Ilyen példák például: Clojure, Apache Groovy, Kotlin, vagy Scala.

Egy virtuális számítógép telepítése

Választási lehetőségek

A Gentoo számos Java Runtime Environment (JRE) és Java Development Kit (JDK) lehetőséget kínál. A jelenlegi választék tartalmazza:

Gyártó JDK
OpenJDK dev-java/openjdk és dev-java/openjdk-bin
Eclipse Temurin dev-java/openjdk-jre-bin

JRE/JDK telepítése

A profil alapértelmezett JDK telepítéséhez futtassa:

root #emerge --ask --oneshot virtual/jdk

A profil alapértelmezett JRE telepítéséhez futtassa:

root #emerge --ask --oneshot virtual/jre
Note
Vegye figyelembe, hogy minden JDK tartalmaz egy JRE-t, így a JRE telepítése nem szükséges, ha egy JDK már telepítve lett.

Felesleges összetevők nélküli JRE beállítása

Néha nincs szükség egy teljes JRE-re a Java minden képességével. A Java használata egy szerveren gyakran nem igényel semmilyen grafikus felhasználói felületet, grafikai, hang- vagy akár nyomtatóval kapcsolatos funkciót. Egy egyszerűsített (amelyet néha headless néven is emlegetnek) JRE telepítéséhez néhány USE jelölőzászlót kell módosítani a kiválasztott JRE verzióhoz.

FILE /etc/portage/package.useSzükséges USE jelölőzászló módosítások
dev-java/openjdk headless-awt -alsa -cups
dev-java/openjdk-bin headless-awt -alsa -cups

A jelenlegi Gentoo profil függvényében ez már fennállhat. Mint általában, az adott szoftvercsomagra vonatkozó USE jelölőzászló beállítások ellenőrizhetők emerge szimulációs módban történő futtatásával:

user $emerge --pretend --verbose virtual/jre

Java Virtual Machine beállítása

Áttekintés

A Gentoo lehetővé teszi több JDK és JRE telepítését anélkül, hogy konfliktusokat okozna.

Alapértelmezés beállítása

A eselect parancs használható a telepített Java példányok (legyen az JRE vagy JDK) listájának megjelenítésére. Íme egy példa a kimenetre:

user $eselect java-vm list
Available Java Virtual Machines:
  [1]   openjdk-8 
  [2]   openjdk-11 
  [3]   openjdk-17
  [4]   openjdk-bin-8  system-vm user-vm

A user-vm jelölőzászló jelzi a felhasználó alapértelmezett JVM-jét. A system-vm jelölőzászló jelzi a rendszer alapértelmezett JVM-jét és az alapértelmezést, ha nincs beállítva felhasználói JVM. A zárójelekben lévő szám (például [1]) az adott JVM-re vonatkozó hivatkozás. Az alapértelmezett rendszer JVM beállításához:

root #eselect java-vm set system 1

Az alapértelmezett felhasználói JVM beállításához:

user $eselect java-vm set user 1
Note
A meglévő shell munkamenetekhez a profil source parancs általi frissítése általában nem szükséges a felhasználói vagy rendszerszintű JVM módosításakor. Az egyetlen kivétel az, hogy olyan változók, mint a JAVA_HOME, továbbra is a régi helyre mutatnak, miután először állítottak be felhasználói JVM-et, vagy visszaállnak a rendszerszintű JVM-re.

Java böngésző bővítmények

Important
A Java bővítmény támogatása megszűnt a JDK 9-ben[1].
Note
Vegye figyelembe, hogy a Chromium alapú böngészők 42-es verziótól kezdődően, valamint a Firefox 52-es verziótól kezdődően már nem támogatják az NPAPI alapú bővítményeket[2]. Ez hatékonyan letiltja a Java bővítményt a modern böngészőkben.

Azok számára, akik egy adott használati esethez Java-képes böngészőt igényelnek, például elérhető a palemoon/palemoon-bin a palemoon overlay-ben, amely hosszú távú támogatást nyújt az NPAPI-hoz, és így a JDK 8-ig terjedő Java bővítményekhez[3].

USE jelölőzászlók Java nyelvhez való használathoz

USE jelölőzászlók beállítása

További információkért a USE jelölőzászlókról tekintse meg a USE jelölőzászlókkal foglalkozó fejezetet a Gentoo kézikönyvben.

USE jelölőzászlók

A következő USE jelölőzászlók kerülnek a JAVA_PKG_IUSE-ba. További részletekért és Java-ra vonatkozó egyéb specifikus USE jelölőzászlókért tekintse meg a Gentoo Java USE flags oldalt.

  • A source jelölőzászló telepíti a szoftvercsomag forráskódjának egy zip fájlját. Ezt hagyományosan arra használják, hogy az IDE-k 'hozzácsatolják' a forrást az éppen használt könyvtárakhoz.
  • A Java csomagok esetében a doc zászló API-dokumentációt épít javadoc segítségével.

Hibaelhárítás

Minecraft indító hibái

Egy konkrét hiba, amelyben a minecraft-launcher néhány másodperc után összeomlott, és 'Alarm' és 'SaveToBuffer failed' hibát dobott, a net-misc/curl esetében a threads USE jelölőzászló beállításával oldódott meg.

Amikor a minecraft-launcher futtatása során a következő hiba jelentkezett:

user $./minecraft-launcher
[0229/184549.183275:ERROR:sandbox_linux.cc(346)] InitializeSandbox() called with multiple threads in process gpu-process.

Ez a probléma a következő opcióval történő minecraft-launcher futtatásával oldódott meg:

user $MESA_GLSL_CACHE_DISABLE=true ./minecraft-launcher

További olvasnivaló a témában

Külső források

További információk offline is elérhetők:

user $man java-config
user $java-config --help

Hibatkozások

  1. JDK 9 and the Java Plugin, java.com. Lekérve: 2018. november 30.
  2. How do I enable Java in my web browser?, java.com. Lekérve: 2018. november 30.
  3. Pale Moon future roadmap, palemoon.org. Lekérve: 2019. június 28.

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.