我在运行 Java 9.0.1 的 Eclipse Oxygen.1a Release (4.7.1a) 的 Maven 项目中创建了一个简单的 Hello World 主类和一个 module-info.java 文件。
当我尝试通过右键单击启动主类 - 作为 Java 应用程序运行时,出现错误:
启动层初始化时出错
java.lang.module.FindException: Module com.github.gv2011.quarry.modules.moda not found
我可以从 target/classes 目录的命令行成功运行它:
java -p . -m com.github.gv2011.quarry.modules.moda/com.github.gv2011.quarry.modules.moda.Hello
Hello
如果我手动编辑创建的启动配置并添加 VM 参数
-p target/classes
-m com.github.gv2011.quarry.modules.moda/com.github.gv2011.quarry.modules.moda.Hello
它也有效。
有没有一种更舒适的方式来从 Eclipse 启动主类而无需手动启动配置编辑?
主类:
package com.github.gv2011.quarry.modules.moda;
public class Hello {
public static void main(final String[] args) {
System.out.println("Hello");
}
}
模块-java:
module com.github.gv2011.quarry.modules.moda {
exports com.github.gv2011.quarry.modules.moda;
}
相关问题:Eclipse - 添加 module-info.java 时找不到模块
Eclipse 创建的启动配置(不工作)是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/quarry-modules-a/src/main/java/com/github/gv2011/quarry/modules/moda/Hello.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.github.gv2011.quarry.modules.moda.Hello"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="quarry-modules-a"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
</launchConfiguration>
有效的是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/quarry-modules-a/src/main/java/com/github/gv2011/quarry/modules/moda/Hello.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.github.gv2011.quarry.modules.moda.Hello"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="quarry-modules-a"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-p target/classes -m com.github.gv2011.quarry.modules.moda/com.github.gv2011.quarry.modules.moda.Hello"/>
</launchConfiguration>