【发布时间】:2018-09-06 07:59:44
【问题描述】:
使用 Java 9 执行简单的“Hello World”程序会导致以下错误消息:
启动层初始化时出错
java.lang.module.FindException:找不到模块 com.pantech.myModule
我执行的命令行是:
java --module-path bin -m com.pantech.myModule/com.pantech.myModule.HelloWorld
此命令行从包含所有.class 字节码文件的bin 目录的父目录执行。
module-info.class 文件位于com.pantech.myModule 目录中,该目录位于bin 目录中。 HelloWorld.class 文件包含 main 方法,位于 com.pantech.myModule 目录内的包目录中。因此,HelloWorld.class 文件的路径名为 bin\com.pantech.myModule\com\pantech\myModule\HelloWorld.class。
HelloWorld 类在com.pantech.myModule 包中(包名与模块名相同)。
我使用 Windows 10 作为操作系统。从我读过的所有内容来看,上面的命令行应该是正确的。有关如何解决此问题的任何建议?
【问题讨论】:
-
编译后的模块文件在哪个目录?似乎您需要添加到模块路径的目录是
bin\com.pantech.myModule -
编译后的模块文件(module-info.class)位于bin\com.pantech.myModule目录下。
-
能否把类定义(从包声明开始)和模块定义也分享一下,以便转载以上内容,好吗?老实说,对于这样的实验,我以the quick-start here 为参考。 (您可能还想交叉验证编译命令)
-
模块定义文件 (module-info.java) 位于 com.pantech.myModule 目录中包含以下内容: module myModule {} HelloWorld 文件的源代码包含以下内容: package com.pantech.myModule ;公共类 HelloWorld { public static void main(String [] args) { System.out.println("来自模块的 Hello World"); } }
-
@D.Pante answer by tretegfdg 似乎在指出你犯的错误。这就是为什么我建议也参考指南。那里的模块名称与包名称
com.greetings(在示例中)相同,因此它们的命令有效。另外,请参阅docs.oracle.com/javase/9/tools/java.htm 了解有关使用的命令的更多详细信息。
标签: java java-9 java-module