【发布时间】:2017-10-02 20:05:54
【问题描述】:
只是探索 Java 的新版本,它的新模块系统,以及使用 jshell。可能我的问题没有太多意义,但我只是好奇。
所以我想出了一个问题:有没有办法在 jshell 中创建一个模块?或者模块只能在module-info.java创建?
【问题讨论】:
标签: java java-9 jshell java-module
只是探索 Java 的新版本,它的新模块系统,以及使用 jshell。可能我的问题没有太多意义,但我只是好奇。
所以我想出了一个问题:有没有办法在 jshell 中创建一个模块?或者模块只能在module-info.java创建?
【问题讨论】:
标签: java java-9 jshell java-module
目前无法使用 JShell 创建模块,也不是Goal of JShell。
JShell API 将提供 JShell 的所有评估功能。 输入到 API 的代码片段称为
"snippets"。 jshell 工具也将使用 JShell 补全 API 确定输入何时不完整(必须提示用户输入 更多),如果添加分号将是完整的(其中 如果工具将附加分号)以及如何完成 使用选项卡请求完成时输入。
sn-p 必须对应于以下 JLS 语法产生式之一:
snippet 不能声明包或模块。所有 JShell 代码都放在一个 unnamed module 中的单个包中。包名由JShell控制。
事实上,在 JShell 中尝试使用 ModuleDeclaration 不是一种公认的语法,无论是直接评估还是使用 /edit:
然而,可以通过以下选项有效地利用 JShell 中的现有模块以及 sn-p 评估 -
--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
【讨论】: