Spring boot kotlin项目无法在运行时加载java类

时间:2018-05-02 03:28:37

标签: java spring-boot gradle kotlin

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

java -jar my_springboot_kotlin_gradle_project 

&安培;我收到了这样的错误

  

引起:java.lang.ClassNotFoundException:
  com.example.components.utils.EncryptionUtils at   java.net.URLClassLoader.findClass(URLClassLoader.java:381)   〜[na:1.8.0_171] at   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] at   java.lang.ClassLoader.loadClass(ClassLoader.java:357)〜[na:1.8.0_171]   ...省略了15个常见帧

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

1 个答案:

答案 0 :(得分:0)

如果你发布游览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链接。