【问题标题】:Spring boot kotlin project cannot load java classes on the run timeSpring boot kotlin 项目无法在运行时加载 java 类
【发布时间】:2018-10-12 02:17:29
【问题描述】:

我在 kotlin 编程语言中使用 spring boot 2.0。在我的项目中,我使用 Java 类和 Kotlin 类,但是当我使用 gradle 构建项目并在终端上运行以下命令时

java -jar my_springboot_kotlin_gradle_project 

& 我遇到了这样的错误

原因:java.lang.ClassNotFoundException:
com.example.components.utils.EncryptionUtils 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_171] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_171] 在 org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClas sLoader.java:93) ~[myapp-0.0.1-SNAPSHOT.jar:na] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_171] ...省略了15个常用框架

如果我在 kotlin spring beans 中使用 java spring beans,则 spring boot 无法自动装配 java beans。

【问题讨论】:

    标签: java spring-boot gradle kotlin


    【解决方案1】:

    如果您发布游览gradle 文件会很好。尽管这是我的观察,但您需要在使用maven or gradle 创建/构建时将类路径添加到应用程序 jar 中。这称为 Fat JAR。

    jar {
        manifest {
            attributes 'Main-Class': 'com.test.example.MainKt' // add your main class path
        }
    
       // check this line / task properly
       from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    }
    

    更多详细信息,您可以参考这个Medium链接。

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 1970-01-01
      • 2020-09-26
      • 2020-10-28
      • 1970-01-01
      • 2019-10-25
      • 2020-05-17
      • 1970-01-01
      • 2019-02-22
      相关资源
      最近更新 更多