java - Java 模块路径参数混淆
问题描述
这个问题是关于 JDK 14“java”命令的确切语法。
Oracle 文档指出:
--module-path modulepath... or -p modulepath
A semicolon (;) separated list of directories in which each directory is a directory of modules.
而 Ubuntu 上的 java --help 说:
-p <module path>
--module-path <module path>...
A : separated list of directories, each directory
is a directory of modules.
我使用 jar 文件进行了尝试,并且用冒号分隔有效,但使用分号无效。我使用了 jar 文件,而不是目录。jar 文件是否被视为“模块目录”?或者它只是一些未记录的功能,可以使用 jar 文件而不是目录?与 File.pathSeparatorChar 有关系吗?
解决方案
正如您所观察到--module-path
的,可能包含对目录或 jar 的引用,我已经检查了我的一个模块 jar,它在这种格式下运行良好:
java --module-path ..\jars\somemodule.jar;other.jar --class-path ..\jars\non-module.jar main.ClassName
它也运行良好:
java --class-path ..\jars\somemodule.jar;other.jar;..\jars\non-module.jar main.ClassName
但不是这里的非模块:
java --module-path ..\jars\somemodule.jar;other.jar;..\jars\non-module.jar main.ClassName
是的,如上所述,File.pathSeparatorChar
是操作系统上 PATH 的分隔符,用作类路径和模块路径中项目的分隔符。窗户';' 但通常在其他地方使用“:”。
推荐阅读
- scala - 将 Seq[Option[Map[String, Any]]] 转换为 Option[Map[String, Any]]
- python - RandomForest 高 OOB 分数与低 KFold 验证分数
- java - PrintWriter 创建空文件
- r - 将特定列中的 NA 值转换为 R 中的“”字段
- flutter - 尝试在小部件中显示列表项时遇到空值
- javascript - 如何在 tolocalestring() 中指定分隔符
- php - Laravel 检索董事会的所有父母
- woocommerce - 找不到单一产品 Woocommerce 模板丢失
- python - Python继承结构和参数
- java - 错误:没有这样的文件或目录试图从终端创建 jar 文件