Megosztás a következőn keresztül:


Java-futtatókörnyezetek a jlink használatával

A Microsoft tudomásul veszi és támogatja az egyéni Java-futtatókörnyezetek bevezetését, amelyek az adott alkalmazás igényeihez igazodnak, és nem az általános célú Java-futtatókörnyezetek használatát igénylik. Ez a Java-alapú üzembe helyezési módszer biztosítja, hogy a Java-futtatókörnyezet csak a Java-platform azon részeit tartalmazza, amelyekre valóban szükség van az alkalmazások számára, ezáltal növelve a biztonságot, csökkentve az üzembe helyezés méretét, és fokozza a teljesítményt mind a felhőalapú, mind a kiszolgálóalapú Java-alkalmazások, valamint az asztali/grafikus felhasználói felületi alkalmazások esetében.

Az Oracle/Sun Microsystems hagyományosan Olyan Java Runtime Environment (JRE) telepítőket hozna létre, amelyek kizárólag a Java virtuális gépet, a Java API-kat és az operációs rendszert, valamint a böngészőspecifikus integrációkat tartalmazzák, amelyek lehetővé teszik a számítógépek számára az internetről letöltött Java-alkalmazások futtatását, illetve az Applets és a Java Web Start-alkalmazások böngészőn keresztüli futtatását.

A modern webalkalmazások és böngészők megjelenésével mind az Applets, mind a Java Web Start technológiák elavulttá váltak, és a böngészők már nem támogatják a Java beépülő modulokat. A számítógépekre előre telepített általános célú Java Runtime-környezetek szükségessége idővel kevésbé jelentősé vált. A Java 9-ben az Applet API elavult (lásd JEP 289) és a Java 17 használatával az API eltávolításra lett megjelölve, ami azt jelenti, hogy a Java egy későbbi kiadásában biztosan el lesz távolítva.

Egy másik jelentős változás a Java modularizálása, amely szintén a Java 9 kiadással kezdődött (lásd : JSR 376). A változás részeként a fejlesztők mostantól használhatnak egy újonnan hozzáadott parancssort a JDK-ban jlink , amely kifejezetten az alkalmazások igényeinek megfelelően tervezett egyéni Java-futtatókörnyezetet hoz létre, amelyet beépített beágyazott futtatókörnyezetként kell üzembe helyezni, valamint az alkalmazáskód gyakran a felhőalapú számítási feladatok tárolólemezképének részeként van telepítve. vagy a GUI-alapú alkalmazások telepítőinek részeként.

Ma a Minecraft: Java Edition több millió Minecraft-játékos számára van üzembe helyezve, a játékba ágyazott egyéni Java-futtatókörnyezettel. Az olyan online szolgáltatások mögött, mint a LinkedIn, a Yammer, a Bing és az Azure, a Microsoft több százezer JVM-et is üzembe helyez ezzel a technikával.

Egyéni Java-futtatókörnyezet létrehozása

Java-futtatókörnyezet létrehozásához telepítenie kell a JDK 9-et vagy újabb verzióját a környezetére. Először töltse le és telepítse az OpenJDK Microsoft Buildet.

Azonosítsa a szükséges modulokat a jdeps segítségével.

A Java Platform mostantól modulokra van szegmentelve. A teljes listát a Java 17 dokumentációjában találja; A Java más verziói új modulokat is tartalmazhatnak.

A JDK eszköz jdeps segítségével elemezhet egy .class fájlt, egy könyvtárat vagy egy JAR fájlt, hogy azonosítsa a Java modul függőségeit, a JDK belső függőségeit és más hasznos információkat, amelyek segítik a fejlesztőket Java futtatókörnyezetek előállításában.

$ cat HelloWorld.java
public class HelloWorld {
  public static void main(String args[]) {
    System.out.println("Hello World!");
  }
}

$ jdeps HelloWorld.class
HelloWorld.class -> java.base
   <unnamed>                                          -> java.io                                            java.base
   <unnamed>                                          -> java.lang                                          java.base

Az eszköz jdeps azt jelzi, hogy ez az osztály csak a java.lang és java.io csomagokban található típusoktól függ, ezért csak a java.base modulra van szükség. Hasonló kimenet jönne létre, ha egy JAR fájl lenne a bemenet. A szükséges modulok listájával most létrehozhat egy Java-futtatókörnyezetet.

Ha Java-futtatókörnyezetet szeretne létrehozni a JDK-ból, tudnia kell, hogy mely modulokat szeretné használni. Az azonosításukra használható jdeps . A parancssori eszköz részleteiért jlink tekintse meg a dokumentációt.

Példa:

$ jlink \
         --add-modules java.base \
         --strip-debug \
         --no-man-pages \
         --no-header-files \
         --compress=2 \
         --output /javaruntime

Most már a modultól függő /javaruntime alkalmazáskód végrehajtásához használhatja az itt java.base található Java-futtatókörnyezetet. Az általa javaruntime létrehozott mappa felépítése jlink hasonló a JDK könyvtárszerkezetéhez, és a java JVM elindításához szükséges parancssori eszköz a szokásos módon található a ./bin/ mappában. Mivel egy egyéni Java-futtatókörnyezet tartalmazza egy meglévő alkalmazás összes szükséges modulját, a rendszer hivatkozhat JAVA_HOMErá.

$ /javaruntime/bin/java HelloWorld
Hello, World!

A fenti példában a Windowson előállított Java-futtatókörnyezet körülbelül 24 MB-ot használ Windows rendszeren.

Java-futtatókörnyezet létrehozása Docker-tároló lemezképével

A Docker többfázisú buildjeivel létrehozhatja, felhasználhatja és becsomagolhatja az egyéni Java-futtatókörnyezetet a rendszerkép-összeállítás részeként. Megtudhatja, hogyan hozhat létre Java-futtatókörnyezeteket a Dockerrel.

Tudásbázis

javax.net.ssl.SSLHandshakeException: Halálos riasztás érkezett: handshake_failure

A probléma megoldásának magyarázatáért látogasson el a Java Security and Cryptography webhelyére.

Erőforrások

Visszajelzés küldése az OpenJDK Microsoft buildjéről

Küldje el észrevételeit, gondolatait és ötleteit, hogy segítsen nekünk az OpenJDK Microsoft buildjének fejlesztésében. A Visszajelzés elküldéséhez látogasson el a GitHub OpenJDK vitafórumára .

A Java és az OpenJDK az Oracle és/vagy társvállalatai védjegyei vagy bejegyzett védjegyei.