Java
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/jdkA profil alapértelmezett JRE telepítéséhez futtassa:
root #emerge --ask --oneshot virtual/jreVegye 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.
/etc/portage/package.useSzükséges USE jelölőzászló módosításokdev-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/jreJava 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 listAvailable 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 1Az alapértelmezett felhasználói JVM beállításához:
user $eselect java-vm set user 1A 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
A Java bővítmény támogatása megszűnt a JDK 9-ben[1].
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
javajelölőzászló hozzáadja a Java támogatást számos programhoz. - A
nspluginjelölőzászlót még mindig a www-plugins/lightspark használja.
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
sourcejelö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
doczászló API-dokumentációt épít javadoc segítségével.
Multiple Java Versions
For those that may need multiple versions of Java, one may use slotted packages.
root #emerge --ask dev-java/openjdk:8root #emerge --ask dev-java/openjdk:11root #emerge --ask dev-java/openjdk:17root #emerge --ask dev-java/openjdk:21The default can then be changed by setting a default.
Hibaelhárítás
Java 21 Circular Dependencies
If you get an error when installing openjdk:21, emerge openjdk-bin:21.
root #emerge --ask dev-java/openjdk-bin:21Minecraft 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-launcherTovábbi olvasnivaló a témában
- Java Developer Guide — covers specific details on Gentoo Java ebuilds.
- Project:Java/Why build from source
- Project:Java/Getting Involved
Külső források
- Configuring Java per directory with jEnv
- #gentoo (webchat) and #gentoo-java (webchat) on IRC
- Java 7 and bootstrapping icedtea on the Gentoo forums
Hibatkozások
- ↑ JDK 9 and the Java Plugin, java.com. Lekérve: 2018. november 30.
- ↑ How do I enable Java in my web browser?, java.com. Lekérve: 2018. november 30.
- ↑ Pale Moon future roadmap, palemoon.org. Lekérve: 2019. június 28.
The following people contributed to the original document: Joshua Nichols, Karl Trygve Kalleberg, nightmorph
Editors: please do not add yourself here. Contributions are recorded on each article's associated history page, this list is only present to preserve authorship information, as wiki history does not allow for any external attribution.