Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NoClassDefFoundError exception when calling Java code from Kotlin

I created a Kotlin project and Java class in it:

package text;

public class StringUtils {

    public static void filter(boolean flag) {
        System.out.println("Flag is " + flag);
    }
}

Then I tried to call filter method from the Kotlin code:

val exists = true;
StringUtils.filter(exists)

I didn't see any errors in my Intellij IDE but in run-time I got an exception:

Exception in thread "main" java.lang.NoClassDefFoundError: text/StringUtils
    at Person.printName(Person.kt:66)
    at PersonKt.main(Person.kt:103)
    at PersonKt.main(Person.kt)
Caused by: java.lang.ClassNotFoundException: text.StringUtils
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 3 more
  • Kotlin compiler: 1.4.30
  • IDE: Intellij 2020.3.2
  • JDK: 15.0.1
like image 565
Sergiy Avatar asked Apr 13 '26 17:04

Sergiy


1 Answers

You have to put all Java classes under src/main/java, instead of src/main/kotlin.

Just right click on main -> new -> directory -> select java (or type it).

like image 151
APTower Avatar answered Apr 16 '26 07:04

APTower



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!