java - 在命令行上运行模块会出现错误 : Module target not found

标签 java command-line java-9 java-module

我是 JAVA9 模块化架构的新手,并尝试从 Windows 命令行编译和运行 JAR 内的模块。

我创建了简单的HelloWorld.java主类,项目架构如下:

enter image description here

我使用以下命令成功编译并创建了 JAR 文件。

编译:

javac -d target/HelloWorld src/HelloWorld/com/java/modularity/test1/HelloWorld.java src/HelloWorld/module-info.java

在“jarfile”目录中创建 HelloWorld.jar 文件:

jar -cfe jarfile/HelloWorld.jar com.java.modularity.test1.HelloWorld  target/HelloWorld/module-info.class target/HelloWorld/com/java/modularity/test1/HelloWorld.class

尝试从 JAR 文件运行模块时出现以下错误:

D:\sts_workspace\java9tutorial>java -p jarfile -m HelloWorld
module HelloWorld does not have a ModuleMainClass attribute, use -m <module>/<main-class>

在命令中更改幻灯片时出现以下错误:

D:\sts_workspace\java9tutorial>java -p jarfile -m target/HelloWorld/com.java.modularity.test1.HelloWorld
Error occurred during initialization of boot layer
java.lang.module.FindException: Module target not found
<小时/>

这是我的入门类 HelloWorld.java :

package com.java.modularity.test1;

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Testing first HelloWorld module ...");
    }
}

这是 HelloWorld 模块描述:

module HelloWorld {

}

我还尝试提取生成的 HelloWorld.jar 文件,并且 MANIFEST.MF 文件中也存在“Main-Class”属性:

Manifest-Version: 1.0
Created-By: 1.8.0_172 (Oracle Corporation)
Main-Class: com.java.modularity.test1.HelloWorld

我需要导出模块定义中的入口类吗?任何建议都将帮助我解决问题。

最佳答案

尝试改变

-m target/HelloWorld/com.java.modularity.test1.HelloWorld

-m HelloWorld/com.java.modularity.test1.HelloWorld 

语法是模块[/mainclass]

关于java - 在命令行上运行模块会出现错误 : Module target not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960983/

相关文章:

java - 使用 Java 在远程计算机上运行命令行

java - 为什么我们需要在 java-9 模块系统中 requires static?

java - 无法识别的选项 : --print-module-descriptor

java - 如何确定两个参数是否是相同但未知类的实例?

C - 解析带有未知数量参数的命令行

java - 在 Kotlin 中显式转换 Android 的 RecyclerView 的 ViewHolder 时出错 : 'This cast can never succeed'

bash - 如何压缩和忽略 .gitignore 指定的所有文件

java - 在 Java 9 中拆分包和 Bootstrap Jar

java - 在 Java Web 应用程序中记录/监控用户 Activity

java - ") "附近的 SQLite 异常