📜  引导类路径未与 一起设置(1)

📅  最后修改于: 2023-12-03 15:09:49.869000             🧑  作者: Mango

引导类路径未与 module-info.java 一起设置

在使用Java 9及以上版本时,引导类路径与 module-info.java 文件必须一起设置,否则可能导致程序无法运行。

引导类路径

引导类路径是Java虚拟机用来搜索类文件的路径,它与普通的类路径(classpath)有所区别。在Java 9及以上版本中,引导类路径被用来加载Java核心库,而普通的类路径被用来加载应用程序类。

module-info.java 文件

module-info.java 文件用来定义Java模块,它可以指定该模块的依赖项和导出的包,以及模块路径和引导类路径。

设置引导类路径和module-info.java文件

引导类路径和module-info.java文件可以通过以下两种方式设置:

  1. 在命令行中使用以下参数设置引导类路径和module-info.java文件:

    java --module-path <modulepath> --module <modulename>/<mainclassname>
    

    其中,为引导类路径,为模块名,为应用程序主类名。

  2. module-info.java文件中使用以下语句设置引导类路径:

    requires java.base;
    

    这个语句将Java核心库(java.base模块)作为依赖项导入到当前模块,并将其加入引导类路径中。

示例

下面是一个示例module-info.java文件:

module mymodule {
    requires java.base;
    requires mymodule2;
    
    exports com.example.mypackage;
}

在编译并运行该模块时,需要使用以下命令:

javac --module-path <modulepath> -d <outputpath> <module-info.java> <sourcemodules>
java --module-path <modulepath> -m mymodule/com.example.mypackage.Main

其中,为引导类路径,为输出路径,<module-info.java>为模块描述文件,为源代码文件目录。

注意,在运行应用程序时,需要指定应用程序的主类名,例如上面的示例中的com.example.mypackage.Main。