Does JPMS support module version?

To shed more light on the existing @9 information:

JVMS 9 includes a field module_version_index in the Module_attribute structure, i.e., the class file format supports storing a version string of a module, even a requires_version_index has been defined, but I am not aware of any specification that relates to evaluating this version, rendering this data purely informative at this point.

More information about the current status (as of Java 9 GA) regarding module versions can be found in the Issue Summary. The format of versions is defined in ModuleDescriptor.Version API.


I can't understand what this @9 is. Is this version or what?

Yes, it is the version of the module.

If JPMS supports module version, can I set in module-info of module A, that module A requires module B of certain version?

No, you cannot refer a specific version of a module in another module's declaration. I believe this was always clearly mentioned in The State of the Module System#Module Declarations

A module’s declaration does not include a version string, nor constraints upon the version strings of the modules upon which it depends. This is intentional as it is not a goal of the module system to solve the version-selection problem, which is best left to build tools and container applications.