Java SE
Java SE (ang. Java Platform, Standard Edition) jest podstawową platformą programistyczną języka Java, zapewniającą zestaw bibliotek, wirtualną maszynę oraz narzędzia niezbędne do tworzenia i uruchamiania aplikacji desktopowych, serwerowych i wbudowanych. Platforma ta jest rozwijana i utrzymywana przez Oracle Corporation, a jej korzenie sięgają firmy Sun Microsystems.
Historia
Początki Java SE sięgają 1995 roku, kiedy to Sun Microsystems opublikował język programowania Java jako część projektu Green Project. Pierwsza wersja, oznaczona jako Java 1.0, została wydana publicznie w 1996 roku. Od tego czasu platforma przeszła liczne przebudowy, a każda kolejna wersja wprowadzała nowe API, usprawnienia w JVM oraz zmiany w specyfikacji języka.
Kluczowe wersje
- Java 1.0 (1996) – podstawowy zestaw klas i interfejsów, wprowadzenie apletów.
- Java 1.2 (1998) – „Java 2” – wprowadzenie Swing, Collections Framework oraz podział na edycje (SE, EE, ME).
- Java 5 (2004) – generics, annotations, autoboxing, enumy.
- Java 6 (2006) – ulepszenia w JDBC, wsparcie dla skryptów JavaScript (Rhino).
- Java 7 (2011) – try‑with‑resources, switch na stringach.
- Java 8 (2014) – wyrażenia lambda, interfejsy funkcyjne, Stream API, Nowa API daty i czasu.
- Java 11 (2018) – pierwsza wersja LTS po Java 8, wprowadzenie HTTP Client API.
- Java 17 (2021) – kolejna wersja LTS, wprowadzenie sealed classes, pattern matching dla
switch. - Java 21 (2023) – aktualna wersja LTS, wsparcie dla wirtualnych wątków (Project Loom) oraz record patterns.
Składniki platformy
Java SE składa się z kilku kluczowych elementów:
- JVM (Java Virtual Machine) – środowisko wykonawcze, które interpretuje bytecode i zarządza pamięcią (garbage collection).
- JDK (Java Development Kit) – zestaw narzędzi deweloperskich, w tym kompilator
javac, debugger, oraz biblioteki klas. - API standardowych bibliotek – ponad 4000 klas podzielonych na pakiety (np.
java.lang,java.util,java.io,java.nio,java.sql).
Podstawowe pakiety
| Pakiet | Opis |
|---|---|
java.lang |
Podstawowe klasy języka, m.in. Object, String, Math. |
java.util |
Struktury danych, klasy pomocnicze, Collections Framework, API daty i czasu. |
java.io |
Operacje wejścia‑wyjścia, strumienie, serializacja. |
java.nio |
Nowoczesne API I/O, bufory, kanały, selektory. |
java.sql |
Interfejs JDBC umożliwiający dostęp do baz danych. |
java.net |
Komunikacja sieciowa, sockety, HTTP. |
java.awt oraz javax.swing |
Tworzenie interfejsów graficznych (GUI). |
Model wydawniczy
Od 2017 roku Oracle przyjął model wydawniczy zwany Time‑Based Release, w którym nowe wersje platformy pojawiają się co sześć miesięcy. Co trzy lata publikowana jest wersja LTS (Long‑Term Support), zapewniająca dłuższe wsparcie techniczne i aktualizacje bezpieczeństwa. Aktualnie najnowszą wersją LTS jest Java 21.
Zastosowania
Java SE jest wykorzystywana w:
- aplikacjach desktopowych (np. Eclipse IDE, IntelliJ IDEA),
- narzędziach administracyjnych i skryptach systemowych,
- rozwiązaniach wbudowanych (IoT), gdzie używa się Java Embedded,
- testowaniu i prototypowaniu, ze względu na szybki czas kompilacji i bogate API.
Kompatybilność i migracja
Jedną z fundamentalnych cech Java SE jest Write Once, Run Anywhere (WORA). W praktyce oznacza to, że aplikacje skompilowane do bytecodeu są przenośne pomiędzy różnymi systemami operacyjnymi, o ile dostępna jest odpowiednia implementacja JVM.
Podczas migracji między wersjami najważniejsze są:
- sprawdzenie zdeprecjonowanych i usuniętych API,
- uruchomienie testów przy użyciu jlink lub jpackage,
- przegląd ustawień pamięci i parametrów startowych VM (np.
-Xmx,-XX:+UseG1GC).
Powiązane projekty
Java SE współdziała z wieloma innymi projektami ekosystemu Java:
- Java EE – rozszerzenie o API dla aplikacji korporacyjnych (EJB, JPA, Servlety).
- Jakarta EE – otwartoźródłowy fork Java EE prowadzony przez Eclipse Foundation.
- OpenJDK – otwartoźródłowa implementacja specyfikacji Java SE, używana jako podstawa komercyjnych dystrybucji.
- Project Loom – inicjatywa wprowadzająca wirtualne wątki, dostępna od Java 19.
- Project Panama – projekt umożliwiający łatwiejszą integrację z kodem natywnym (C/C++).
Licencja i dostępność
Od 2019 roku Oracle udostępnia Oracle JDK na licencji komercyjnej z darmową wersją Oracle Java SE Support dla użytku niekomercyjnego. Jednocześnie OpenJDK, wydany pod licencją GPLv2 + Classpath Exception, jest wolnodostępny i stanowi podstawę wielu dystrybucji (np. AdoptOpenJDK, Amazon Corretto, Zulu OpenJDK).
Przyszłość
Rozwój Java SE koncentruje się na zwiększaniu wydajności (wirtualne wątki, optymalizacje JIT), poprawie ergonomii programisty (pattern matching, records) oraz dalszej integracji z nowoczesnymi technologiami chmurowymi i mikroserwisowymi. Dzięki modelowi wydawniczemu oraz silnemu wsparciu społeczności, platforma pozostaje jedną z najważniejszych technologii w branży oprogramowania.
Bibliografia
- Oracle. Java Platform, Standard Edition Documentation.
- OpenJDK Project. OpenJDK Release Notes.
- Sun Microsystems. The Java Language Specification.