当前位置: 首页 > 知识库问答 >
问题:

在EclipseOxygen4.7中导入Java-9-Jigsaw-Maven-Project不起作用

龚志
2023-03-14

我使用:

  • JDK 9 build 9-ea 172
  • Maven 3.5.0
  • EclipseOxygen4.7RC3版本4.7.0。I20170531-2000从2017年5月31日起
  • Eclipse插件:
    • EclipseJDT(Java开发工具)补丁,带有针对Oxygen开发流的Java9支持(BETA版),1.1.1。v20170526-0728_BETA_JAVA9
    • m2e-Maven Eclipse集成(包括孵化组件),1.8.0.20170516-2043

    创建一个新的拼图-马文-项目:

    mkdir proj1\a\src\main\java\a\a
    cd proj1
    

    在目录project 1中,文件pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>test</groupId>
      <artifactId>Proj1</artifactId>
      <version>1.0</version>
      <packaging>pom</packaging>
      <modules>
        <module>a</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
              <source>9</source>
              <target>9</target>
              <showWarnings>true</showWarnings>
              <showDeprecation>true</showDeprecation>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    

    在目录proj1\a文件pom中。xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>test</groupId>
        <artifactId>Proj1</artifactId>
        <version>1.0</version>
      </parent>
      <artifactId>a</artifactId>
      <packaging>jar</packaging>
      <build>
        <sourceDirectory>src/main/java/a</sourceDirectory>
      </build>
    </project>
    

    在目录proj1\a\src\main\java\a中,文件模块信息。java

    module a { }
    

    在目录中,文件App.java

    package a;
    
    public class App {
       public static void main( String[] args ) {
          System.out.println( "CLASSPATH:           " + System.getProperty( "java.class.path" ) );
          System.out.println( "Class / Modul:       " + App.class.getSimpleName() + " from " + App.class.getModule() );
          java.lang.ModuleLayer lr = App.class.getModule().getLayer();
          if( lr != null ) {
             System.out.println( "Layer.Configuration: " + lr.configuration() );
          } else {
             System.out.println( "Error:               ModuleLayer is null" );
          }
       }
    }
    

    在命令行上运行项目:

    cd proj1
    mvn clean package
    java -p a\target\a-1.0.jar -m a/a.App  
    

    --

    CLASSPATH:
    Class / Modul:       App from module a
    Layer.Configuration: java..., ...  
    

    --

    在IntelliJ IDEA 2017.2 EAP中启动项目
    --

    在Eclipse Oxygen 4.7 RC3中导入项目:
    --

    CLASSPATH:           ...\proj1\a\target\classes
    Class / Modul:       App from unnamed module @68f7aae2
    Error:               ModuleLayer is null
    

    --

    如何避免这种错误?


共有2个答案

童花蜂
2023-03-14

通常,单个src文件夹中的所有类都应该包含并打包在单个module-info.java此外,module-info.java应该立即包含在src包中。对您来说,应该合并目录invest1\a\src\中的类。你应该保持module-info.java在同一水平。请关注此博客以了解完整部署。

朱锐
2023-03-14

这是Eclipse Oxygen 4.7 RC3中的一个错误,请参见:
Eclipse Bug 517777:在Eclipse Oxygen 4.7中运行Java9应用程序不会设置模块路径(https://bugs.eclipse.org/bugs/show_bug.cgi?id=517777)

Eclipse Bug 514760:运行配置应该支持模块的概念(https://bugs.eclipse.org/bugs/show_bug.cgi?id=514760)

 类似资料:
  • 如题所述:截图如下 在项目查找中截图如下: 找不到项目,无法运行 不知道是哪里出现问题, 项目直接从网上拉取,不会出现问题,应该是Eclipse出现问题,但不知道哪里没有设置到位,请问我的Eclipse要怎么设置,或者是其他原因? 急切求解,谢谢!

  • 问题内容: 我似乎无法让绝对导入在python中工作。这是我的文件结构: foo.py: 我反而得到: 这到底是怎么回事?我觉得我缺少基本的东西。尽管这个例子很简单,但我需要绝对导入才能为实际项目工作,因此仅用相对导入替换导入是不可行的。我正在使用python 2.7.13 预先感谢您的任何见解! 问题答案: 由于未显示,因此我必须假设您正在运行,这会将脚本()的目录放在开始的位置,而实际上您希望

  • 我似乎无法让绝对导入在python中工作。以下是我的文件结构: 福。py: 我反而得到: 这到底是怎么回事?我觉得我错过了一些基本的东西。虽然这个例子很简单,但我需要绝对导入来为实际项目工作,因此仅用相对导入替换导入是不可取的。我正在使用python 2.7。13 这里列出的解决方案都没有帮助 提前感谢您的任何见解!

  • 我在Spring Toolsuite(基本上是Eclipse)中将一个动态web应用程序转换为一个maven项目该项目现在有一个pom。xml文件,但Java构建路径不再具有我使用的JAR,因为maven应该处理依赖项。我将依赖项放在pom中,如下所示: 我包含了一个这样的存储库: 不过,依赖关系尚未解决,我的servlet也无法工作。为什么我转换的Maven项目没有让依赖关系管理变得更容易?更具

  • 这可能是个愚蠢的问题,但我无论如何也无法解决。我有一个JavaScript文件,其中包含我想要导出的各种函数。 当我调用这个方法(使用mocha)时,我得到一条错误消息“export function AddNumbers(…numbers)Unexpected token export”。该项目构建为ES6。有人知道我做错了什么吗? 最好的问候,托斯顿

  • 当我将从开源网站(如Apache,Github)下载的导入时,发生了几个错误:(.注意,所有Maven项目都可以在Eclipse下正确编译和测试。 首先,在将maven项目导入到Eclipse之后,项目图标上将出现,但是项目中没有错误。我发现在文件中存在节点。我删除了节点,然后错误就消失了,我想知道为什么,因为maven项目中没有模块。下面的代码是我之前删除的节点。