Moduly runtime Java s jlinkem
Microsoft bere na vědomí a podporuje přijetí vlastních modulů runtime Java vytvořených pro konkrétní potřeby aplikací, spíše použití modulů runtime Java pro obecné účely. Tato metoda nasazení v Javě zajišťuje, že modul runtime Java obsahuje jenom části platformy Java, které aplikace skutečně potřebují, a tím zvyšují zabezpečení, snižují velikost nasazení a zvyšují výkon pro cloudové i serverové aplikace v Javě i desktopové a grafické uživatelské rozhraní.
Oracle/Sun Microsystems tradičně vytvoří instalační programy prostředí Java Runtime Environment (JRE), které budou obsahovat výhradně virtuální počítač Java, rozhraní JAVA API a konkrétní integrace operačního systému a prohlížeče a prohlížeče, jejichž cílem je umožnit počítačům spouštění aplikací Java stažených z internetu nebo spouštění aplikací Applets a Java Web Start prostřednictvím prohlížeče.
Po nástupu moderních webových aplikací a prohlížečů se zřetědily technologie Applets i Java Web Start a prohlížeče už nepodporují moduly plug-in Java. Potřeba prostředí Java Runtime pro obecné účely předinstalovaná na počítačích se stala méně významnou přesčasovou. S Javou 9 se rozhraní API Applet přestalo používat (viz JEP 289) a s Javou 17 se rozhraní API označilo k odebrání, což znamená, že se určitě odebere v budoucí verzi Javy.
Další významnou změnou je modularizace Javy, která také začala s verzí Java 9 (viz JSR 376). V rámci této změny teď můžou vývojáři použít nově přidaný příkazový řádek v JDK jlink
k vytvoření vlastního modulu runtime Java, který je speciálně navržený tak, aby vyhovoval potřebám aplikací, aby se nasadili jako integrovaný modul runtime spolu s kódem aplikace často jako součást image kontejneru pro cloudové úlohy. nebo jako součást instalačních programů pro aplikace založené na grafickém uživatelském rozhraní.
Minecraft: Java Edition se dnes nasadí do milionů hráčů Minecraftu s vlastním modulem runtime Java vloženým do hry. Za online služby, jako je LinkedIn, Yammer, Bing a Azure, Microsoft pomocí této techniky nasadí stovky tisíc JVM.
Vytvoření vlastního modulu runtime Java
Pokud chcete vytvořit modul runtime Java, musíte mít ve svém prostředí nainstalovaný JDK 9 nebo novější. Nejprve stáhněte a nainstalujte Microsoft Build openJDK.
Identifikace požadovaných modulů pomocí jdeps
Platforma Java se teď segmentuje do modulů. Úplný seznam najdete v dokumentaci k Javě 17 . Další verze Javy můžou obsahovat nové moduly.
Nástroj jdeps
JDK lze použít k analýze .class
souboru, adresáře nebo JAR
souboru k identifikaci závislostí modulů Java, interních závislostí sady JDK a dalších užitečných informací, které vývojářům pomůžou vytvářet moduly runtime Java.
$ 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
Nástroj jdeps
označuje, že tato třída závisí pouze na typech v java.lang
a java.io
balíčcích, a proto potřebuje pouze modul java.base
. Podobný výstup by se vytvořil pro JAR
soubor jako vstup. Se seznamem požadovaných modulů teď můžete vytvořit modul runtime Java.
Vytvoření modulu runtime Java s využitím jlink
Pokud chcete vytvořit modul runtime Java z sady JDK, musíte vědět, které moduly chcete použít. Slouží jdeps
k jejich identifikaci. Podrobnosti o nástroji příkazového jlink
řádku najdete v dokumentaci.
Příklad:
$ jlink \
--add-modules java.base \
--strip-debug \
--no-man-pages \
--no-header-files \
--compress=2 \
--output /javaruntime
Teď můžete použít modul runtime Java umístěný na /javaruntime
spuštění kódu aplikace závislého na java.base
modulu. Struktura složky vytvořené jlink
pomocí JDK se podobá adresářové struktuře sady JDK a java
nástroj příkazového javaruntime
řádku pro spuštění prostředí JVM se nachází ve ./bin/
složce obvyklým způsobem. Vzhledem k tomu, že vlastní modul runtime Java obsahuje všechny požadované moduly existující aplikace, lze na něj odkazovat JAVA_HOME
.
$ /javaruntime/bin/java HelloWorld
Hello, World!
V předchozím příkladu využívá vytvořený modul runtime Java ve Windows přibližně 24 MB ve Windows.
Vytvoření modulu runtime Java pomocí image kontejneru Dockeru
Pomocí vícefázových sestavení Dockeru můžete vytvářet, využívat a zabalit vlastní modul runtime Java jako součást sestavení image. Podívejte se, jak vytvářet moduly runtime Java pomocí Dockeru.
Znalostní báze
javax.net.ssl.SSLHandshakeException: Došlo k závažné výstraze: handshake_failure
Vysvětlení, jak tento problém vyřešit, najdete v tématu Zabezpečení a kryptografie v Javě.
Zdroje informací
Poskytnutí zpětné vazby k sestavení OpenJDK od Microsoftu
Pošlete nám svoje komentáře, myšlenky a nápady, které nám pomůžou vylepšit Microsoft Build OpenJDK. Navštivte naši diskuzní stránku OpenJDK na GitHubu a pošlete nám svůj názor.
Java a OpenJDK jsou ochranné známky nebo registrované ochranné známky společnosti Oracle a/nebo jejích afilací.