在Java 9中使用JShell创建模块

Ser*_*rik 8 java java-9 jshell java-module

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

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

Nam*_*man 6

目前无法使用JShell创建模块,也不是JShell的目标.

JShell功能

JShell API将提供JShell的所有评估功能.输入到API的代码片段称为 "snippets".jshell工具还将使用JShell完成API来确定何时输入不完整(并且必须提示用户更多),如果添加了分号(在这种情况下工具将附加分号),它也将完成如何使用选项卡请求完成时完成输入.

代码段必须与以下JLS语法产品之一相对应:

  • 表达
  • 声明
  • ClassDeclaration
  • InterfaceDeclaration
  • MethodDeclaration
  • FieldDeclaration
  • 导入声明

A snippet可能不会声明包或模块.所有JShell代码都放在一个未命名的模块中的单个包中.包的名称由JShell控制.

实际上,尝试使用ModuleDeclarationJShell内部并不是公认的语法,也不是直接评估或使用/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
Run Code Online (Sandbox Code Playgroud)