<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Platform_Module_System</id>
	<title>Java Platform Module System - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Platform_Module_System"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Platform_Module_System&amp;action=history"/>
	<updated>2026-05-05T10:54:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Java_Platform_Module_System&amp;diff=4739592&amp;oldid=prev</id>
		<title>24.50.56.74: /* Core modules */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Platform_Module_System&amp;diff=4739592&amp;oldid=prev"/>
		<updated>2025-06-02T21:27:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Core modules&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{short description|Distribution format for Java code and resources}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Java Platform Module System&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/projects/jigsaw/spec/&lt;br /&gt;
| title=Java Platform Module System (JSR 376)&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2018-07-02}}&amp;lt;/ref&amp;gt; specifies a distribution format for collections of [[Java (programming language)|Java]] code and associated resources. It also specifies a repository for storing these collections, or &amp;#039;&amp;#039;[[modular programming|modules]]&amp;#039;&amp;#039;, and identifies how they can be discovered, loaded and checked for integrity. It includes features such as namespaces with the aim of fixing some of the shortcomings in the existing [[JAR (file format)|JAR]] format, especially the [[Java class loader#JAR hell|JAR Hell]], which can lead to issues such as classpath and class loading problems.&lt;br /&gt;
&lt;br /&gt;
The Java Module System was initially being developed under the [[Java Community Process]] as JSR 277 and was scheduled to be released with Java 7.&lt;br /&gt;
&lt;br /&gt;
JSR 277 later was put on hold and Project Jigsaw&amp;lt;ref name=&amp;quot;jigsaw&amp;quot;&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/projects/jigsaw/&lt;br /&gt;
| title=Project Jigsaw &lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2015-11-29}}&amp;lt;/ref&amp;gt; was created to modularize the JDK. This JSR was superseded by JSR 376 (Java Platform Module System).&lt;br /&gt;
&lt;br /&gt;
Project Jigsaw was originally intended for [[Java 7]] (2011) but was deferred to [[Java 8]] (2014) as part of Plan B,&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://mreinhold.org/blog/plan-b&lt;br /&gt;
| title=It&amp;#039;s time for … Plan B&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| author=Mark Reinhold&lt;br /&gt;
| date=2009-09-20&lt;br /&gt;
| accessdate=2017-06-21}}&amp;lt;/ref&amp;gt; and again deferred to a [[Java 9]] release in 2017.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/projects/jdk9/&lt;br /&gt;
| title=JDK 9&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2016-02-24}}&amp;lt;/ref&amp;gt; Java 9 including the Java Module System was released on September 21, 2017.&amp;lt;ref&amp;gt;{{cite web|url=https://www.techworld.com/news/developers/java-9-release-date-new-features-3660988/|title=Java 9: Release date and new features|publisher=techworld.com|date=2017-07-21|accessdate=2017-11-18}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
The Java Module System implemented in Java 9 includes the following [[JDK Enhancement Proposal|JEP]]s and [[Java Community Process|JSR (Java Specification Request)]]:&amp;lt;ref name=&amp;quot;jigsaw&amp;quot;/&amp;gt;&lt;br /&gt;
* JEP 200: The Modular JDK: Define a modular structure for the JDK&lt;br /&gt;
* JEP 201: Modular Source Code: Reorganize the JDK source code into modules, enhance the build system to compile modules, and enforce module boundaries at build time&lt;br /&gt;
* JEP 220: Modular Run-Time Images: Restructure the JDK and JRE run-time images to accommodate modules and to improve performance, security, and maintainability&lt;br /&gt;
* JEP 261: Module System: Implement the Java Platform Module System&lt;br /&gt;
* JEP 282: The Java Linker: Create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/jeps/282&lt;br /&gt;
| title=jlink: The Java Linker (JSR 282)&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2016-03-12}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* JSR 376: Java Platform Module System&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/projects/jigsaw/spec/&lt;br /&gt;
| title=Java Platform Module System (JSR 376)&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2015-11-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, several other JDK 9 features have been added to ease transition to the module system:&lt;br /&gt;
* JEP 238: Multi-Release JAR Files: Extend the JAR file format to allow multiple, Java-release-specific versions of class files to coexist in a single archive.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/jeps/238&lt;br /&gt;
| title=JEP 238: Multi-Release JAR Files&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2017-07-31}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* JEP 253: Prepare [[JavaFX]] UI Controls &amp;amp; CSS APIs for Modularization: Define public APIs for the JavaFX functionalities that is presently only available via internal APIs and would become inaccessible due to modularization.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/jeps/253&lt;br /&gt;
| title=JEP 253: Prepare JavaFX UI Controls &amp;amp; CSS APIs for Modularization&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2017-07-31}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* JEP 260: Encapsulate Most Internal APIs: Make most of the JDK&amp;#039;s internal APIs inaccessible by default but leave a few critical, widely-used internal APIs accessible, until supported replacements exist for all or most of their functionality.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/jeps/260&lt;br /&gt;
| title=JEP 260: Encapsulate Most Internal APIs&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2017-07-31}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* JEP 275: Modular Java Application Packaging: The [[Java packager]] will evolve for JDK 9, making it aware of modules, allowing for example to package a module and all the modules it depends on.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/jeps/275&lt;br /&gt;
| title=JEP 275: Modular Java Application Packaging&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| accessdate=2017-07-31}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Properties of modules ==&lt;br /&gt;
&lt;br /&gt;
Modules are a new way of grouping code. Contrary to [[JAR (file format)|Jar files]], modules explicitly declare which modules they depend on, and what packages they export.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://openjdk.java.net/projects/jigsaw/spec/sotms/&lt;br /&gt;
| title=The State of the Module System&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| author=Mark Reinhold&lt;br /&gt;
| date=2016-03-08&lt;br /&gt;
| accessdate=2017-02-18}}&amp;lt;/ref&amp;gt; Explicit dependency declarations improve the integrity of the code, by making it easier to reason about large applications and the dependencies between software components.&lt;br /&gt;
&lt;br /&gt;
The module declaration is placed in a file named {{mono|module-info.java}} at the root of the module’s source-file hierarchy. The JDK will verify dependencies and interactions between modules both at compile-time and runtime.&lt;br /&gt;
&lt;br /&gt;
For example, the following module declaration declares that the module {{mono|com.foo.bar}} depends on another {{mono|com.foo.baz}} module, and exports the following packages: {{mono|com.foo.bar.alpha}} and {{mono|com.foo.bar.beta}}:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
module com.foo.bar {&lt;br /&gt;
    requires com.foo.baz;&lt;br /&gt;
&lt;br /&gt;
    exports com.foo.bar.alpha;&lt;br /&gt;
    exports com.foo.bar.beta;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The public members of {{mono|com.foo.bar.alpha}} and {{mono|com.foo.bar.beta}} packages will be accessible by dependent modules. Private members are inaccessible even through a means such as [[reflective programming|reflection]]. Note that in [[Java version history|Java versions]] 9 through 16, whether such &amp;#039;illegal access&amp;#039; is &amp;#039;&amp;#039;de facto&amp;#039;&amp;#039; permitted depends on a command line setting.&amp;lt;ref name=&amp;quot;JEP 396: Strongly Encapsulate JDK Internals by Default&amp;quot;&amp;gt;{{cite web | url=https://openjdk.java.net/jeps/396 | title=JEP 396: Strongly Encapsulate JDK Internals by Default | access-date=2021-02-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JDK itself has been modularized in [[Java version history#Java SE 9|Java 9]].&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html&lt;br /&gt;
| title=JDK Module Summary&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| date=2016-06-24&lt;br /&gt;
| accessdate=2017-02-18&lt;br /&gt;
| archive-date=2015-12-08&lt;br /&gt;
| archive-url=https://web.archive.org/web/20151208074800/http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html&lt;br /&gt;
| url-status=dead&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; For example, the majority of the Java standard library is exported by the module &amp;lt;code&amp;gt;java.base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Modules can themselves be imported, automatically importing all exported packages.&amp;lt;ref&amp;gt;{{Cite web|url=https://openjdk.org/jeps/494|title=JEP 494: Module Import Declarations (Second Preview)|website=openjdk.org}}&amp;lt;/ref&amp;gt; This is done using &amp;lt;code&amp;gt;import module&amp;lt;/code&amp;gt;. For example, &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; inline&amp;gt;import module java.sql;&amp;lt;/syntaxhighlight&amp;gt; is equivalent to&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot;&amp;gt;&lt;br /&gt;
import java.sql.*;&lt;br /&gt;
import javax.sql.*;&lt;br /&gt;
// Remaining indirect exports from java.logging, java.transaction.xa, and java.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Similarly, &amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot; inline&amp;gt;import module java.base;&amp;lt;/syntaxhighlight&amp;gt;, similarly, imports all 54 packages belonging to &amp;lt;code&amp;gt;java.base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Modules use the following [[List of Java keywords|keywords]]:&lt;br /&gt;
* &amp;lt;code&amp;gt;exports&amp;lt;/code&amp;gt;: used in a module declaration to specify which packages are available to other modules&lt;br /&gt;
* &amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;: declares a module&lt;br /&gt;
* &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt;: indicates that all classes in a package are accessible via reflection by other modules&lt;br /&gt;
* &amp;lt;code&amp;gt;opens&amp;lt;/code&amp;gt;: used to open a specific package for reflection to other modules&lt;br /&gt;
* &amp;lt;code&amp;gt;provides&amp;lt;/code&amp;gt;: used to declare that a module provides an implementation of a service interface&lt;br /&gt;
* &amp;lt;code&amp;gt;requires&amp;lt;/code&amp;gt;: used in a module declaration to specify that the module depends on another module&lt;br /&gt;
* &amp;lt;code&amp;gt;to&amp;lt;/code&amp;gt;: used with the &amp;lt;code&amp;gt;opens&amp;lt;/code&amp;gt; directive to specify which module is allowed to reflectively access the package&lt;br /&gt;
* &amp;lt;code&amp;gt;transitive&amp;lt;/code&amp;gt;: used with the &amp;lt;code&amp;gt;requires&amp;lt;/code&amp;gt; directive to indicate that a module not only requires another module but also makes that module&amp;#039;s dependencies available to modules that depend on it&lt;br /&gt;
* &amp;lt;code&amp;gt;uses&amp;lt;/code&amp;gt;: used in a module to declare that the module is using a service (i.e. it will consume a service provided by other modules)&lt;br /&gt;
* &amp;lt;code&amp;gt;with&amp;lt;/code&amp;gt;: used with the &amp;lt;code&amp;gt;provides&amp;lt;/code&amp;gt; directive to specify which implementation of a service is provided by the module&lt;br /&gt;
&lt;br /&gt;
== Core modules ==&lt;br /&gt;
The modules under namespace &amp;lt;code&amp;gt;java.*&amp;lt;/code&amp;gt; belong to the [[Java Platform, Standard Edition]], and modules under namespace &amp;lt;code&amp;gt;jdk.*&amp;lt;/code&amp;gt; belong to the [[Java Development Kit]].&amp;lt;ref&amp;gt;{{Cite web|url=https://docs.oracle.com/en/java/javase/24/docs/api/index.html|title=Java® Platform, Standard Edition &amp;amp; Java Development Kit Version 24 API Specification|website=docs.oracle.com}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot;&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.base}}&lt;br /&gt;
| Defines the core APIs that form the foundation of the Java SE Platform.&lt;br /&gt;
Implicitly required by all modules and does not need to be declared with &amp;lt;code&amp;gt;requires&amp;lt;/code&amp;gt; inside a module declaration.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.compiler}}&lt;br /&gt;
| Defines APIs related to the language model, [[Java annotation]] processing, and the [[Java compiler]]. &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.datatransfer}}&lt;br /&gt;
| Defines the APIs that facilitate data transfer between applications or within an application.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.desktop}}&lt;br /&gt;
| Defines the [[Abstract Window Toolkit]] (AWT) and [[Swing (Java)|Swing]] libraries for user interfaces, along with APIs for accessibility, audio, imaging, printing, and [[JavaBeans]].&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.instrument}}&lt;br /&gt;
| Defines services that allow for the instrumentation of programs running on the [[Java Virtual Machine]] (JVM).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.logging}}&lt;br /&gt;
| Defines the API for [[Logging (computing)|logging]] events in Java applications (Java Logging API).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.management}}&lt;br /&gt;
| Defines the APIs for the [[Java Management Extensions]] (JMX) framework.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.management.rmi}}&lt;br /&gt;
| Defines the [[Remote Method Invocation]] (RMI) connector for the Java Management Extensions (JMX) Remote API.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.naming}}&lt;br /&gt;
| Defines the API for [[Java Naming and Directory Interface]] (JNDI) services.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.net.http}}&lt;br /&gt;
| Defines the API for [[HTTP client]] and [[WebSocket]] functionality.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.prefs}}&lt;br /&gt;
| Defines the API for managing and storing user preferences.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.rmi}}&lt;br /&gt;
| Defines the Remote Method Invocation (RMI) API for object communication across Java virtual machines.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.scripting}}&lt;br /&gt;
| Defines the API for integrating [[scripting engine]]s into Java applications (Scripting API).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.se}}&lt;br /&gt;
| Defines the standard API for the Java SE Platform.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.security.jgss}}&lt;br /&gt;
| Defines the Java binding for the [[Internet Engineering Task Force|IETF]] [[Generic Security Services Application Programming Interface|Generic Security Services API]] (GSS-API) for security contexts.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.security.sasl}}&lt;br /&gt;
| Defines Java&amp;#039;s support for the [[Simple Authentication and Security Layer]] (SASL) protocol.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.smartcardio}}&lt;br /&gt;
| Defines the API for interacting with [[smart card]] devices (Java Smart Card I/O API).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.sql}}&lt;br /&gt;
| Defines the [[Java Database Connectivity]] (JDBC) API for database interaction.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.sql.rowset}}&lt;br /&gt;
| Defines the JDBC RowSet API for managing and interacting with tabular data in Java.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.transaction.xa}}&lt;br /&gt;
| Defines an API for managing distributed transactions within JDBC.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.xml}}&lt;br /&gt;
| Defines the [[Java API for XML Processing]] (JAXP), including tools for parsing and transforming XML data.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|java.xml.crypto}}&lt;br /&gt;
| Defines the API for [[XML Encryption|cryptographic operations]] with XML data.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.accessibility}}&lt;br /&gt;
| Defines utility classes for implementing [[Assistive technology|Assistive Technologies]] in the JDK.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.attach}}&lt;br /&gt;
| Defines the attach API for connecting to and interacting with a running JVM instance (attach API).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.charsets}}&lt;br /&gt;
| Provides additional [[character encoding|character sets]] ({{mono|charset}}s), including double-byte and IBM-specific charsets, not included in &amp;lt;code&amp;gt;java.base&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.compiler}}&lt;br /&gt;
| Defines the internal implementation of the Java compiler and the command-line tool &amp;#039;&amp;#039;[[javac]]&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.crypto.cryptoki}}&lt;br /&gt;
| Defines the implementation of the SunPKCS11 security provider for cryptographic operations.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.dynalink}}&lt;br /&gt;
| Defines the API for dynamically linking high-level operations on objects.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.editpad}}&lt;br /&gt;
| Implements the edit pad service used by &amp;lt;code&amp;gt;jdk.jshell&amp;lt;/code&amp;gt; for evaluating code.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.hotspot.agent}}&lt;br /&gt;
| Provides the implementation for the [[HotSpot (virtual machine)|HotSpot]] Serviceability Agent.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.httpserver}}&lt;br /&gt;
| Defines the JDK-specific HTTP server API and the &amp;#039;&amp;#039;jwebserver&amp;#039;&amp;#039; tool for running a simple HTTP server.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.incubator.vector}}&lt;br /&gt;
| Defines the API for expressing computations that can be compiled into SIMD instructions at runtime, such as AVX or NEON instructions.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jartool}}&lt;br /&gt;
| Provides tools for manipulating [[JAR (file format)|Java Archive]] (JAR) files, such as the &amp;#039;&amp;#039;jar&amp;#039;&amp;#039; and &amp;#039;&amp;#039;jarsigner&amp;#039;&amp;#039; commands.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.javadoc}}&lt;br /&gt;
| Defines the system documentation tool implementation and its command-line version, &amp;#039;&amp;#039;[[Javadoc|javadoc]]&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jcmd}}&lt;br /&gt;
| Defines tools for diagnosing and troubleshooting JVM processes, including &amp;#039;&amp;#039;jcmd&amp;#039;&amp;#039;, &amp;#039;&amp;#039;jps&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;jstat&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jconsole}}&lt;br /&gt;
| Defines the JMX-based graphical tool, &amp;#039;&amp;#039;[[JConsole|jconsole]]&amp;#039;&amp;#039;, for monitoring and managing Java applications.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jdeps}}&lt;br /&gt;
| Defines tools for analysing dependencies in Java programs and libraries, such as &amp;#039;&amp;#039;jdeps&amp;#039;&amp;#039;, &amp;#039;&amp;#039;javap&amp;#039;&amp;#039;, &amp;#039;&amp;#039;jdeprscan&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;jnativescan&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jdi}}&lt;br /&gt;
| Defines the [[Java Platform Debugger Architecture#Java Debugger Interface (JDI)|Java Debug Interface]] (JDI) for debugging Java applications.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jdwp.agent}}&lt;br /&gt;
| Provides the implementation of the [[Java Debug Wire Protocol]] (JDWP) agent for remote debugging.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jfr}}&lt;br /&gt;
| Defines the API for [[JDK Flight Recorder]] (JFR) for collecting performance and diagnostic data.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jlink}}&lt;br /&gt;
| Defines the &amp;#039;&amp;#039;jlink&amp;#039;&amp;#039; tool for creating custom runtime images, and &amp;#039;&amp;#039;jmod&amp;#039;&amp;#039; and &amp;#039;&amp;#039;jimage&amp;#039;&amp;#039; tools for managing JMOD and JDK container files.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jpackage}}&lt;br /&gt;
| Defines the [[Java packager]] tool (&amp;#039;&amp;#039;jpackage&amp;#039;&amp;#039;) for creating platform-specific application packages.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jshell}}&lt;br /&gt;
| Provides the &amp;#039;&amp;#039;jshell&amp;#039;&amp;#039; tool for interactively evaluating Java code snippets.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jsobject}}&lt;br /&gt;
| Defines the API for integrating [[JavaScript]] objects in Java applications.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.jstatd}}&lt;br /&gt;
| Defines the &amp;#039;&amp;#039;jstatd&amp;#039;&amp;#039; tool for remotely monitoring JVM statistics.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.localedata}}&lt;br /&gt;
| Provides locale-specific data for non-US locales.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.management}}&lt;br /&gt;
| Defines JDK-specific management interfaces for JVM monitoring and control.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.management.agent}}&lt;br /&gt;
| Defines the JMX-based management agent for the JVM.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.management.jfr}}&lt;br /&gt;
| Defines the management interface for JDK Flight Recorder (JFR).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.naming.dns}}&lt;br /&gt;
| Implements the [[Domain Name System|DNS]] Java Naming provider for resolving domain names.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.naming.rmi}}&lt;br /&gt;
| Implements the RMI Java Naming provider for remote method invocation.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.net}}&lt;br /&gt;
| Defines the JDK-specific API for network programming.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.nio.mapmode}}&lt;br /&gt;
| Defines specific file mapping modes available in the JDK.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.sctp}}&lt;br /&gt;
| Provides the API for [[Stream Control Transmission Protocol]] (SCTP) in the JDK.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.security.auth}}&lt;br /&gt;
| Implements authentication modules and security-related interfaces within the &amp;lt;code&amp;gt;javax.security.auth&amp;lt;/code&amp;gt; package (interfaces in &amp;lt;code&amp;gt;javax.security.auth.*&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.security.jgss}}&lt;br /&gt;
| Defines extensions to the GSS-API and the implementation of the SASL GSSAPI mechanism in the JDK.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.xml.dom}}&lt;br /&gt;
| Defines the JDK&amp;#039;s subset of the [[World Wide Web Consortium]] (W3C) [[Document Object Model]] (DOM) API not covered by Java SE.&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | {{code|jdk.zipfs}}&lt;br /&gt;
| Provides the implementation for the ZIP file system provider, enabling access to [[ZIP (file format)|ZIP files]] as file systems.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links with OSGi ==&lt;br /&gt;
The Java Module System does not intend to support all the functionalities that  the [[OSGi]] platform currently supports (for example the Life-Cycle model and the Services Registry). However the Java Module System will support functions which are not supported by OSGi, such as modularity at compile-time, and built-in support for native libraries.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://mreinhold.org/blog/late-for-the-train-qa&lt;br /&gt;
| title=Project Jigsaw: Late for the train: The Q&amp;amp;A&lt;br /&gt;
| publisher=[[Oracle Corporation]]&lt;br /&gt;
| author=Mark Reinhold&lt;br /&gt;
| date=2012-08-24&lt;br /&gt;
| accessdate=2015-11-29}}&amp;lt;/ref&amp;gt; A couple of articles exploring how the Java Module System and OSGi could interoperate were published in 2016.  These can be found on InfoQ&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=https://www.infoq.com/articles/java9-osgi-future-modularity/&lt;br /&gt;
| title=Java 9, OSGi and the Future of Modularity&lt;br /&gt;
| publisher=InfoQ&lt;br /&gt;
| accessdate=2016-09-26}}&amp;lt;/ref&amp;gt; and also the OSGi Alliance Blog.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://blog.osgi.org/2016/08/java-module-layers-and-osgi-bundles.html&lt;br /&gt;
| title=Java Module Layers and OSGi Bundles&lt;br /&gt;
| publisher=OSGi Alliance&lt;br /&gt;
| accessdate=2016-08-01}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Java package]]&lt;br /&gt;
* [[Classpath]]&lt;br /&gt;
* [[Java class loader]]&lt;br /&gt;
* [[Precompiled header#Modules]], C++ modules&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.jcp.org/en/jsr/detail?id=277 JSR 277]&lt;br /&gt;
* [http://www.jcp.org/en/jsr/detail?id=294 JSR 294]&lt;br /&gt;
* [https://www.jcp.org/en/jsr/detail?id=376 JSR 376]&lt;br /&gt;
* [http://openjdk.java.net/projects/jigsaw/ Project Jigsaw]&lt;br /&gt;
* [http://openjdk.java.net/projects/jigsaw/spec/sotms/ The State of the Module System]&lt;br /&gt;
* [http://openjdk.java.net/projects/jigsaw/spec/issues/ Java Platform Module System: Issue Summary]&lt;br /&gt;
&lt;br /&gt;
{{Java (software platform)}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Java specification requests]]&lt;/div&gt;</summary>
		<author><name>24.50.56.74</name></author>
	</entry>
</feed>