首页 > 解决方案 > 当我反转参数顺序时,从命令行中断运行 Java 模块

问题描述

我可以从命令行运行 Java 模块而不会出现以下问题:

java -p "dir/with/module1;dir/with/module2" -m my.module.name
//runs fine

但是,当我反转参数时,将 -m (--module) 放在 -p (--module-path) 之前,它不起作用并导致以下错误:

java -m my.module.name -p "dir/with/module1;dir/with/module2"
Error occurred during initialization of boot layer
java.lang.module.FindException: Module my.module.name not found

这是预期的行为吗?有人可以确认 -p 和 -m 参数的顺序是否重要?

这是我的Java版本供参考:

$ java --version
openjdk 11.0.12 2021-07-20 LTS
OpenJDK Runtime Environment Corretto-11.0.12.7.1 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.12.7.1 (build 11.0.12+7-LTS, mixed mode)

标签: javamodulecommand-line-argumentsjava-9

解决方案


官方文档:

在模块中启动主类: java [options] -m module[/mainclass] [args...]

-p是一个必须先来的选项-m


推荐阅读