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

使用jigsaw模块在jdk9中运行spring boot

洪子晋
2023-03-14

这个应用程序有什么问题。我认为类路径jar和模块jar的混合是有效的。对于所有没有显式模块的jar-info变成自动模块?当我删除我的模块-info.java时,它就可以工作了。因为在这种情况下,我想使用类路径。

Java(TM)SE运行时环境(构建9+176)

module test {
    requires spring.boot.autoconfigure;
    requires spring.boot;
}
package com.foo.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}
<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>com.foo.test</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.M2</version>
    </parent>

    <name>test</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.9</maven.compiler.source>
        <maven.compiler.target>1.9</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/libs-milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

线程“main”java.lang.IllegalArgumentException:无法实例化接口org.springframework.context.applicationContextInitializer:org.springframework.boot.context.context.configurationWarningsApplicationContextInitializer:2.0.0.m2/org.springframework.boot.springapplication.createspringFactoriesInstances(SpringApplication.java:439)在FactoriesInstances(SpringApplication.java:409)在spring.boot@2.0.0.m2/org.springframework.boot.springapplication.java:266)在spring.boot@2.0.0.m2/org.springframework.boot.springapplication.java:266)在spring.boot@2.0.0.m2/org.springframework.boot.springapplication.java:247)在在test/com.foo.test.app.main(app.java:10)处由:java.lang.noClassDeffounderror:java/sql/sqlexception at spring.beans@5.0.0.rc2/org.springframework.beans.beanutils.instantiateClass(beanutils.java:145)at.java:582)在java.base/jdk.internal.loader.classloaders$appClassLoader.loadClass(classLoaders.java:185)在java.base/java.lang.classLoader.loadClass(classLoader.java:496)...还有9个

共有1个答案

段干博涉
2023-03-14

我假设Spring.boot是一个自动模块。自动模块不声明依赖关系,因此必须使用--add-modules来确保解析所需的任何显式模块。如果Spring.boot是一个显式模块,那么我假设它需要java.sql,您就不会遇到这个问题。

 类似资料:
  • 我正在使用Eclipse中的 JUnit5位于modul-path上,并且在module-info.Java中是必需的。 当我尝试运行代码时,总是会收到以下消息: 初始化引导层java.lang.module.findException时出错:无法为C:\users\tim hp.p2\pool\plugins\org.junit.jupiter.migrationsupport_5.0.0.v2

  • 刚开始玩jdk9 - 并且有点卡在一开始: < li >下载并解压缩了eclipse-Java-neon-m4a-win32 < li >已安装java 9支持(通过市场中的免打扰) < li >下载并安装了jdk9u99(只有jdk,没有公共jre) 此时,我可以在默认的Java(8u 60)上运行eclipse,既可以使用JRE/JDK(eclipse . ini中的/out vm参数),也可

  • 我开始学习使用java9拼图的新特性。 我按照这个教程,我管理创建一个项目与两个模块和一个外部模块依赖。(我在下面发布pom文件代码,以给出产品结构的想法) 现在我想在Eclipse Oxygen中导入我的maven项目(支持Java9插件),以便在Eclipse IDE中运行和调试该项目。 我用氧气。1a和我安装了对Oxygen4.7的Java9支持 我使用“导入现有Maven项目”并选择根po

  • 摘要 本文描述了在 Windows 平台使用 QEMU 运行 RT-Thread 动态模块及动态库。 简介 RT-Thread 动态模块组件 dlmodule 提供了动态加载程序模块的机制。dlmodule 组件更多的是一个 ELF 格式加载器,把单独编译的一个 elf 文件的代码段,数据段加载到内存中,并对其中的符号进行解析,绑定到内核导出的 API 地址上。动态模块 elf 文件主要放置于 R

  • lipse插件尝试“本地”运行一个新的Web应用程序(从Eclipse内部,使用内置的Jetty容器)。我正在遵循本GWT教程中的说明,并遇到了一些问题,大概是因为我如何定义模块。 我有一个具有以下目录结构的Web应用程序项目: 我希望我的应用程序有两个模块:,即“公共网站”,以及当用户进入时加载的模块,然后还有,仅在用户登录后下载,并包含站点的“私有应用程序”功能。 : : : -ddatast

  • 问题内容: 我一直在学习有关node.js和模块的信息,似乎无法让Underscore库正常工作……似乎我第一次使用Underscore中的函数时,它会覆盖_对象,其结果为我的函数调用。有人知道发生了什么吗?例如,这是来自node.js REPL的会话: 当我自己制作Javascript文件并将其导入时,它们似乎工作正常。Underscore库也许有一些特别之处? 问题答案: Node REPL使

  • 问题内容: 在IDLE和Python版本3.3.2中,我尝试像这样调用python模块: 我将其导入程序顶部,如下所示: 我得到的结果如下: 但是,当我使用Python 2.7.3在Ubuntu中执行同一文件时,它执行得很好-没有错误。 我尝试了以下方法来解决Windows&Python 3.3.2的问题(尽管我确定操作系统不是问题,但Python版本或语法的使用才是问题): 将目录中的目录从重命

  • 我在NetBeans中创建了一个带有EJB模块和web模块的Java EE应用程序。业务逻辑驻留在EJB模块内部的EJB中。web模块的托管bean是否可以访问EJB模块内部的EJB?怎么做? (JDK 1.7、Java EE 6、Glassfish 3.1.2.2、NetBeans IDE 7.2)