
JDK (Java Development Kit)
Oracle JDK
Narzędzia JDK
Narzędzia podstawowe
jar– tworzenie archiwów .jar dla klas i zasobów oraz manipulowanie pojedynczymi klasami lub zasobami w archiwachjava– uruchamianie aplikacji Javajavac– odczytywanie klas i definicji interfejsów oraz kompilowanie ich do kodu bajtowego i plików .classjavadoc– tworzenie stron HTML dokumentacji API z plików źródłowychjavap– deasemblacja kodu w plikach .classjavaw(Windows only) – uruchamia aplikację java bez okna konsolijdeprscan– skanowanie plików archiwów na obecność elementów API mających status deprecatedjdeps– włączanie analizatora zależności klas Javajimage– praca z plikami JIMAGE – nie ma go na wykazach narzędzi publikowanych przez Oraclejlink– asemblacja i optymalizacja zestawu modułów i ich zależności w kliencki obraz czasu wykonywania JIMAGEjmod– tworzenie plików JMOD oraz manipulowanie ich zawartościąjpackage– tworzenie plików uruchomieniowych
Linia poleceń języka
jshell– interaktywne wykonywanie deklaracji, poleceń i wyrażeń języka Java w pętli read-eval-print loop (REPL) (pętla odczytaj-oceń-wydrukuj)
Narzędzia i polecenia związane z bezpieczeństwem
jarsigner– podpisywanie plików archiwów i weryfikacja tych podpisówkeytool– zarządzanie przechowalniami (bazami danych) kluczy kryptograficznych, łańcuchami certyfikatów X.509 i certyfikatami zaufanymikinit(Windows only) – otrzymywanie i buforowanie zezwoleń dostępu w systemie Kerberosklist(Windows only) – wyświetlanie zawartości lokalnego bufora poświadczeń oraz tablicy kluczy w systemie Kerberosktab(Windows only) – zarządzanie nazwami zasadniczymi i kluczami serwisowymi przechowywanymi w lokalnej tablicy kluczy w systemie Kerberos
Narzędzia i polecenia RMI (Remote Method Invocation)
rmiregistry– system oparte na UNIX – utworzenie i uruchomienie zdalnego rejestru obiektu na podanym porcie na bieżącym hościeserialver– generowanieserialVersionUIDdla jednej lub większej liczby klas
Narzędzia i polecenia monitorowania
jconsole– uruchamia konsolę graficzną do monitorowania i zarządzania aplikacjami Javajps(experimental) – listowanie instrumentowanych JVMs na systemie docelowymjstat(experimental) – monitorowanie statystyk JVMjstatd(experimental) – monitorowanie tworzenia i terminacji instrumentowanych Java HotSpot VMs
Narzędzia użytkowe dostępności
jabswitch(Windows only) – umożliwia lub uniemożliwia dostęp do Java Access Bridgejaccessinspector(Windows only) – badanie informacji o obiektach w JVM, które używają Java Accessibilityjaccesswalker(Windows only) – nawigacja po drzewie komponentów w JVM i prezentacja tej hierarchii w postaci drzewa
Narzędzia rozwiązywania problemów
jcmd– wysyłanie żądań komend diagnostycznych do uruchomionej JVMjdb– wyszukiwanie i naprawianie pluskiew (bugs) w programach Javajhsdb– ingerencja w procesy Java lub włączanie debuggera w celu analizowania zawartości zrzutów jądra z JVM, która uległa awariijinfo(experimental) – generowanie informacji o konfiguracji określonych procesów Javajmap(experimental) – drukowanie szczegółów podanego procesujstack(experimental) – drukowanie zawartości stosu wątków Java dla podanych procesów
Linia poleceń skryptów
jrunscript(experimental) – uruchamianie skryptowej linii poleceń wspierającej tryby interaktywny i wsadowy
Narzędzia serwerowe
jwebserver– uruchamia Simple Web Server
Narzędzia specjalne
jfr– parsowanie i drukowanie plików Flight Recorder – tylko w planach płatnych
Zmiany w JDK od JDK 9 (Java 9)
Java 21
- 430: String Templates (Preview)
 - 431: Sequenced Collections
 - 439: Generational ZGC
 - 440: Record Patterns
 - 441: Pattern Matching for switch
 - 442: Foreign Function & Memory API (Third Preview)
 - 443: Unnamed Patterns and Variables (Preview)
 - 444: Virtual Threads
 - 445: Unnamed Classes and Instance Main Methods (Preview)
 - 446: Scoped Values (Preview)
 - 448: Vector API (Sixth Incubator)
 - 449: Deprecate the Windows 32-bit x86 Port for Removal
 - 451: Prepare to Disallow the Dynamic Loading of Agents
 - 452: Key Encapsulation Mechanism API
 - 453: Structured Concurrency (Preview)
 
Java 20
- 429: Scoped Values (Incubator)
 - 432: Record Patterns (Second Preview)
 - 433: Pattern Matching for switch (Fourth Preview)
 - 434: Foreign Function & Memory API (Second Preview)
 - 436: Virtual Threads (Second Preview)
 - 437: Structured Concurrency (Second Incubator)
 - 438: Vector API (Fifth Incubator)
 
Java 19
- 405: Record Patterns (Preview)
 - 422: Linux/RISC-V Port
 - 424: Foreign Function & Memory API (Preview)
 - 425: Virtual Threads (Preview)
 - 426: Vector API (Fourth Incubator)
 - 427: Pattern Matching for switch (Third Preview)
 - 428: Structured Concurrency (Incubator)
 
Java 18
- 400: UTF-8 by Default
 - 408: Simple Web Server
 - 413: Code Snippets in Java API Documentation
 - 416: Reimplement Core Reflection with Method Handles
 - 417: Vector API (Third Incubator)
 - 418: Internet-Address Resolution SPI
 - 419: Foreign Function & Memory API (Second Incubator)
 - 420: Pattern Matching for switch (Second Preview)
 - 421: Deprecate Finalization for Removal
 
Java 17
- 306: Restore Always-Strict Floating-Point Semantics
 - 356: Enhanced Pseudo-Random Number Generators
 - 382: New macOS Rendering Pipeline
 - 391: macOS/AArch64 Port
 - 398: Deprecate the Applet API for Removal
 - 403: Strongly Encapsulate JDK Internals
 - 406: Pattern Matching for switch (Preview)
 - 407: Remove RMI Activation
 - 409: Sealed Classes
 - 410: Remove the Experimental AOT and JIT Compiler
 - 411: Deprecate the Security Manager for Removal
 - 412: Foreign Function & Memory API (Incubator)
 - 414: Vector API (Second Incubator)
 - 415: Context-Specific Deserialization Filters
 
Java 16
- 338: Vector API (Incubator)
 - 347: Enable C++14 Language Features
 - 357: Migrate from Mercurial to Git
 - 369: Migrate to GitHub
 - 376: ZGC: Concurrent Thread-Stack Processing
 - 380: Unix-Domain Socket Channels
 - 386: Alpine Linux Port
 - 387: Elastic Metaspace
 - 388: Windows/AArch64 Port
 - 389: Foreign Linker API (Incubator)
 - 390: Warnings for Value-Based Classes
 - 392: Packaging Tool
 - 393: Foreign-Memory Access API (Third Incubator)
 - 394: Pattern Matching for instanceof
 - 395: Records
 - 396: Strongly Encapsulate JDK Internals by Default
 - 397: Sealed Classes (Second Preview)
 
Java 15
- 339: Edwards-Curve Digital Signature Algorithm (EdDSA)
 - 360: Sealed Classes (Preview)
 - 371: Hidden Classes
 - 372: Remove the Nashorn JavaScript Engine
 - 373: Reimplement the Legacy DatagramSocket API
 - 374: Disable and Deprecate Biased Locking
 - 375: Pattern Matching for instanceof (Second Preview)
 - 377: ZGC: A Scalable Low-Latency Garbage Collector
 - 378: Text Blocks
 - 379: Shenandoah: A Low-Pause-Time Garbage Collector
 - 381: Remove the Solaris and SPARC Ports
 - 383: Foreign-Memory Access API (Second Incubator)
 - 384: Records (Second Preview)
 - 385: Deprecate RMI Activation for Removal
 
Java 14
- 305: Pattern Matching for instanceof (Preview)
 - 343: Packaging Tool (Incubator)
 - 345: NUMA-Aware Memory Allocation for G1
 - 349: JFR Event Streaming
 - 352: Non-Volatile Mapped Byte Buffers
 - 358: Helpful NullPointerExceptions
 - 359: Records (Preview)
 - 361: Switch Expressions (Standard)
 - 362: Deprecate the Solaris and SPARC Ports
 - 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
 - 364: ZGC on macOS
 - 365: ZGC on Windows
 - 366: Deprecate the ParallelScavenge + SerialOld GC Combination
 - 367: Remove the Pack200 Tools and API
 - 368: Text Blocks (Second Preview)
 - 370: Foreign-Memory Access API (Incubator)
 
Java 13
- 350: Dynamic CDS Archives
 - 351: ZGC: Uncommit Unused Memory
 - 353: Reimplement the Legacy Socket API
 - 354: Switch Expressions (Preview)
 - 355: Text Blocks (Preview)
 
Java 12
- 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
 - 230: Microbenchmark Suite
 - 325: Switch Expressions (Preview)
 - 334: JVM Constants API
 - 340: One AArch64 Port, Not Two
 - 341: Default CDS Archives
 - 344: Abortable Mixed Collections for G1
 - 346: Promptly Return Unused Committed Memory from G1
 - Compact Number Formatting
 - Unicode 11
 
Java 11
- 181: Nest-Based Access Control
 - 309: Dynamic Class-File Constants
 - 315: Improve Aarch64 Intrinsics
 - 318: Epsilon: A No-Op Garbage Collector
 - 320: Remove the Java EE and CORBA Modules
 - 321: HTTP Client (Standard)
 - 323: Local-Variable Syntax for Lambda Parameters
 - 324: Key Agreement with Curve25519 and Curve448
 - 327: Unicode 10
 - 328: Flight Recorder
 - 329: ChaCha20 and Poly1305 Cryptographic Algorithms
 - 330: Launch Single-File Source-Code Programs
 - 331: Low-Overhead Heap Profiling
 - 332: Transport Layer Security (TLS) 1.3
 - 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
 - 335: Deprecate the Nashorn JavaScript Engine
 - 336: Deprecate the Pack200 Tools and API
 
Java 10
- 286: Local-Variable Type Inference
 - 296: Consolidate the JDK Forest into a Single Repository
 - 304: Garbage-Collector Interface
 - 307: Parallel Full GC for G1
 - 310: Application Class-Data Sharing
 - 312: Thread-Local Handshakes
 - 313: Remove the Native-Header Generation Tool (javah)
 - 314: Additional Unicode Language-Tag Extensions
 - 316: Heap Allocation on Alternative Memory Devices
 - 317: Experimental Java-Based JIT Compiler
 - 319: Root Certificates
 - 322: Time-Based Release Versioning
 
Java 9
- 102: Process API Updates
 - 110: HTTP 2 Client
 - 143: Improve Contended Locking
 - 158: Unified JVM Logging
 - 165: Compiler Control
 - 193: Variable Handles
 - 197: Segmented Code Cache
 - 199: Smart Java Compilation, Phase Two
 - 200: The Modular JDK
 - 201: Modular Source Code
 - 211: Elide Deprecation Warnings on Import Statements
 - 212: Resolve Lint and Doclint Warnings
 - 213: Milling Project Coin
 - 214: Remove GC Combinations Deprecated in JDK 8
 - 215: Tiered Attribution for javac
 - 216: Process Import Statements Correctly
 - 217: Annotations Pipeline 2.0
 - 219: Datagram Transport Layer Security (DTLS)
 - 220: Modular Run-Time Images
 - 221: Simplified Doclet API
 - 222: jshell: The Java Shell (Read-Eval-Print Loop)
 - 223: New Version-String Scheme
 - 224: HTML5 Javadoc
 - 225: Javadoc Search
 - 226: UTF-8 Property Files
 - 227: Unicode 7.0
 - 228: Add More Diagnostic Commands
 - 229: Create PKCS12 Keystores by Default
 - 231: Remove Launch-Time JRE Version Selection
 - 232: Improve Secure Application Performance
 - 233: Generate Run-Time Compiler Tests Automatically
 - 235: Test Class-File Attributes Generated by javac
 - 236: Parser API for Nashorn
 - 237: Linux/AArch64 Port
 - 238: Multi-Release JAR Files
 - 240: Remove the JVM TI hprof Agent
 - 241: Remove the jhat Tool
 - 243: Java-Level JVM Compiler Interface
 - 244: TLS Application-Layer Protocol Negotiation Extension
 - 245: Validate JVM Command-Line Flag Arguments
 - 246: Leverage CPU Instructions for GHASH and RSA
 - 247: Compile for Older Platform Versions
 - 248: Make G1 the Default Garbage Collector
 - 249: OCSP Stapling for TLS
 - 250: Store Interned Strings in CDS Archives
 - 251: Multi-Resolution Images
 - 252: Use CLDR Locale Data by Default
 - 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
 - 254: Compact Strings
 - 255: Merge Selected Xerces 2.11.0 Updates into JAXP
 - 256: BeanInfo Annotations
 - 257: Update JavaFX/Media to Newer Version of GStreamer
 - 258: HarfBuzz Font-Layout Engine
 - 259: Stack-Walking API
 - 260: Encapsulate Most Internal APIs
 - 261: Module System
 - 262: TIFF Image I/O
 - 263: HiDPI Graphics on Windows and Linux
 - 264: Platform Logging API and Service
 - 265: Marlin Graphics Renderer
 - 266: More Concurrency Updates
 - 267: Unicode 8.0
 - 268: XML Catalogs
 - 269: Convenience Factory Methods for Collections
 - 270: Reserved Stack Areas for Critical Sections
 - 271: Unified GC Logging
 - 272: Platform-Specific Desktop Features
 - 273: DRBG-Based SecureRandom Implementations
 - 274: Enhanced Method Handles
 - 275: Modular Java Application Packaging
 - 276: Dynamic Linking of Language-Defined Object Models
 - 277: Enhanced Deprecation
 - 278: Additional Tests for Humongous Objects in G1
 - 279: Improve Test-Failure Troubleshooting
 - 280: Indify String Concatenation
 - 281: HotSpot C++ Unit-Test Framework
 - 282: jlink: The Java Linker
 - 283: Enable GTK 3 on Linux
 - 284: New HotSpot Build System
 - 285: Spin-Wait Hints
 - 287: SHA-3 Hash Algorithms
 - 288: Disable SHA-1 Certificates
 - 289: Deprecate the Applet API
 - 290: Filter Incoming Serialization Data
 - 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
 - 292: Implement Selected ECMAScript 6 Features in Nashorn
 - 294: Linux/s390x Port
 - 295: Ahead-of-Time Compilation
 - 297: Unified arm32/arm64 Port
 - 298: Remove Demos and Samples
 - 299: Reorganize Documentation
 
