只是探索 Java 的新版本,它的新模块系统,以及使用 jshell。可能我的问题没有太多意义,但我只是好奇。
所以我想出了一个问题:有没有办法在 jshell 中创建一个模块?或者模块只能在module-info.java
?
只是探索 Java 的新版本,它的新模块系统,以及使用 jshell。可能我的问题没有太多意义,但我只是好奇。
所以我想出了一个问题:有没有办法在 jshell 中创建一个模块?或者模块只能在module-info.java
?
目前无法使用 JShell 创建模块,这也不是JShell的目标。
JShell API 将提供 JShell 的所有评估功能。输入到 API 的代码片段称为
"snippets"
. jshell 工具还将使用 JShell 补全 API 来确定输入何时不完整(并且必须提示用户输入更多信息),如果添加了分号(在这种情况下,工具将附加分号)何时会完成,以及使用选项卡请求完成时如何完成输入。
片段必须对应于以下 JLS 语法产生式之一:
Asnippet
不能声明包或模块。所有 JShell 代码都放在一个未命名模块的单个包中。包的名称由 JShell 控制。
事实上,尝试ModuleDeclaration
在 JShell 中使用 a 并不是一种公认的语法,无论是直接评估还是使用/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