Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Firma Microsoft potwierdza i obsługuje wdrażanie niestandardowych środowisk uruchomieniowych Java spreparowanych dla określonych potrzeb aplikacji, a nie użycia środowisk uruchomieniowych Języka Java ogólnego przeznaczenia. Ta metoda wdrażania języka Java zapewnia, że środowisko uruchomieniowe Java zawiera tylko części platformy Java, które są naprawdę potrzebne przez aplikacje, co zwiększa bezpieczeństwo, zmniejsza rozmiar wdrożenia i zwiększa wydajność zarówno dla aplikacji Java opartych na chmurze, jak i na serwerze, a także aplikacji klasycznych/gui.
Tradycyjnie systemy Oracle/Sun Microsystems tworzyłyby instalatory środowiska Java Runtime Environment (JRE), które będą zawierać wyłącznie maszynę wirtualną Java, interfejsy API Języka Java oraz integrację systemu operacyjnego i przeglądarki, mające na celu włączenie komputerów do uruchamiania aplikacji Java pobranych z Internetu lub uruchamiania apletów i aplikacji Java Web Start za pośrednictwem przeglądarki.
Wraz z pojawieniem się nowoczesnych aplikacji internetowych i przeglądarek zarówno aplety, jak i technologie Java Web Start stały się przestarzałe, a przeglądarki nie obsługują już wtyczek Java. Potrzeba wstępnie zainstalowanych środowisk uruchomieniowych Java powszechnego zastosowania na komputerach stała się mniej znacząca z czasem. W środowisku Java 9 interfejs API apletu stał się przestarzały (zobacz JEP 289) i z językiem Java 17 interfejs API został oznaczony do usunięcia, co oznacza, że z pewnością zostanie usunięty w przyszłej wersji języka Java.
Kolejną znaczącą zmianą jest modułyzacja języka Java, również rozpoczęta w wersji Java 9 (zobacz JSR 376). W ramach tej zmiany deweloperzy mogą teraz używać nowego polecenia w zestawie JDK nazwanego jlink
, aby tworzyć niestandardowe środowisko uruchomieniowe Java, specjalnie zaprojektowane pod kątem potrzeb aplikacji, które ma być wdrażane jako wbudowane środowisko uruchomieniowe razem z kodem aplikacji, często w postaci obrazu kontenera dla obciążeń w chmurze lub jako część instalatorów dla aplikacji z graficznym interfejsem użytkownika.
Obecnie Minecraft: Java Edition jest udostępniany milionom graczy Minecraft z niestandardowym środowiskiem uruchomieniowym Java osadzonym w grze. Za usługami online, takimi jak LinkedIn, Yammer, Bing i Azure, firma Microsoft wdraża również setki tysięcy maszyn wirtualnych Java przy użyciu tej techniki.
Tworzenie niestandardowego środowiska uruchomieniowego Java
Aby utworzyć środowisko uruchomieniowe języka Java, w środowisku musi być zainstalowany zestaw JDK 9 lub nowszy. Pobierz i zainstaluj Microsoft Build OpenJDK najpierw.
Identyfikowanie wymaganych modułów za pomocą polecenia jdeps
Platforma Java jest teraz podzielona na moduły. Aby uzyskać pełną listę, zapoznaj się z dokumentacją środowiska Java 17 ; inne wersje języka Java mogą zawierać nowe moduły.
Narzędzie jdeps
JDK może służyć do analizowania .class
pliku, katalogu lub JAR
pliku w celu identyfikowania zależności modułów Java, zależności wewnętrznych zestawu JDK i innych przydatnych informacji, które pomogą deweloperom tworzyć środowiska uruchomieniowe Języka 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
Narzędzie jdeps
wskazuje, że ta klasa zależy tylko od typów w java.lang
pakietach i java.io
, dlatego potrzebuje tylko modułu java.base
. Podobne dane wyjściowe zostaną wygenerowane dla pliku JAR
jako dane wejściowe. Po utworzeniu listy wymaganych modułów możesz teraz utworzyć środowisko uruchomieniowe Języka Java.
Tworzenie środowiska uruchomieniowego Java za pomocą polecenia jlink
Aby utworzyć środowisko uruchomieniowe Języka Java na podstawie zestawu JDK, musisz wiedzieć, które moduły chcesz. Użyj polecenia jdeps
, aby je zidentyfikować. Aby uzyskać szczegółowe informacje na jlink
temat narzędzia wiersza polecenia, zapoznaj się z dokumentacją.
Przykład:
$ jlink \
--add-modules java.base \
--strip-debug \
--no-man-pages \
--no-header-files \
--compress=2 \
--output /javaruntime
Teraz możesz użyć środowiska uruchomieniowego Java znajdującego się w lokalizacji , /javaruntime
aby wykonać kod aplikacji zależny od java.base
modułu. Struktura folderu utworzonego przez javaruntime
przez program jlink
jest podobna do struktury katalogów JDK, a narzędzie wiersza poleceń java
do uruchamiania maszyny wirtualnej JVM znajduje się jak zwykle w folderze ./bin/
. Biorąc pod uwagę, że niestandardowe środowisko uruchomieniowe Java zawiera wszystkie wymagane moduły istniejącej aplikacji, można odwoływać się do niego za pomocą polecenia JAVA_HOME
.
$ /javaruntime/bin/java HelloWorld
Hello, World!
W powyższym przykładzie utworzone środowisko uruchomieniowe Java w systemie Windows zużywa około 24 MB w systemie Windows.
Tworzenie środowiska uruchomieniowego Java przy użyciu obrazu kontenera platformy Docker
Kompilacje wieloetapowe platformy Docker umożliwiają tworzenie, używanie i pakowanie niestandardowego środowiska uruchomieniowego Java w ramach kompilacji obrazu. Zobacz , jak tworzyć środowiska uruchomieniowe Java przy użyciu platformy Docker.
Baza wiedzy
javax.net.ssl.SSLHandshakeException: Odebrano alert krytyczny: handshake_failure
Odwiedź stronę Zabezpieczenia języka Java i kryptografia , aby zapoznać się z wyjaśnieniem, jak rozwiązać ten problem.
Zasoby
Prześlij opinię na temat zestawu Microsoft Build of OpenJDK
Wyślij nam swoje komentarze, myśli i pomysły, aby pomóc nam ulepszyć microsoft build of OpenJDK. Odwiedź naszą stronę dyskusji OpenJDK w witrynie GitHub , aby wysłać nam swoją opinię.
Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Oracle i/lub jej podmiotami partnerskimi.