【问题标题】:Create Module in JShell in Java 9在 Java 9 的 JShell 中创建模块
【发布时间】:2017-10-02 20:05:54
【问题描述】:

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

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

【问题讨论】:

    标签: java java-9 jshell java-module


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2015-02-05
      相关资源
      最近更新 更多