在 Java 9 中在 JShell 中创建模块

Create Module in JShell in Java 9

只是在探索 Java 的新版本,它的新模块系统,以及使用 jshell。可能我的问题没有太大的意义,但我只是好奇。

所以我想出了一个问题:有没有办法在jshell中创建一个模块?或者模块只能在 module-info.java?

中创建

目前无法使用 JShell 创建模块,它也不是 Goal of JShell

JShell 功能

The JShell API will provide all of JShell's evaluation functionality. The code fragments that are input to the API are referred to as "snippets". The jshell tool will also use the JShell completion API to determine when input is incomplete (and the user must be prompted for more), when it would be complete if a semicolon were added (in which case the tool will append the semicolon) and also how to complete input when completion is requested with a tab.

片段必须对应于以下 JLS 语法产生式之一:

  • 表达式
  • 声明
  • 类声明
  • 接口声明
  • 方法声明
  • 字段声明
  • 导入声明

A snippet 不能声明包或模块。所有 JShell 代码都放在 unnamed module 中的 单个包中。包名由JShell控制

事实上,尝试在 JShell 中使用 ModuleDeclaration 不是公认的语法,无论是直接评估还是使用 /edit:


但是,可以使用以下选项来有效地利用 JShell 中的现有模块以及代码段评估 -

--module-path <path>  
      Specify where to find application modules

--add-modules <module>(,<module>)*
      Specify modules to resolve, or all modules on the
      module path if <module> is ALL-MODULE-PATHs