Skip to content

Instantly share code, notes, and snippets.

@dmikurube
Last active January 31, 2023 12:57
Show Gist options
  • Save dmikurube/35e95c45e5cd511484b8fe982d1469ee to your computer and use it in GitHub Desktop.
Save dmikurube/35e95c45e5cd511484b8fe982d1469ee to your computer and use it in GitHub Desktop.
NoClassDefFoundError
plugins {
id "java"
id "application"
}
configurations {
compileClasspath.resolutionStrategy.activateDependencyLocking()
runtimeClasspath.resolutionStrategy.activateDependencyLocking()
}
repositories {
mavenCentral()
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(8)
}
}
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked"
options.encoding = "UTF-8"
}
sourceSets {
main {
java {
srcDir '.'
}
}
}
dependencies {
compileOnly "org.msgpack:msgpack-core:0.8.24"
}
application {
mainClass = "Main"
}
public class Main {
public static void main(final String[] args) {
System.out.println("#1");
Sub.safe();
Sub.unsafe1(null);
Sub.unsafe2(null);
Sub.unsafe3(null);
Sub.unsafe4(null);
System.out.println("#2");
}
}
import org.msgpack.value.Value;
public class Sub {
public static void safe() {
System.out.println("Safe");
}
public static void unsafe1(final Value value) {
System.out.println("Unsafe1");
}
public static void unsafe2(final Value value) {
System.out.println("Unsafe2");
if (value == null) {
System.out.println("null");
} else {
System.out.println(value.toString());
}
}
public static void unsafe3(final Value value) {
System.out.println("Unsafe3");
try {
System.out.println(value.toJson());
} catch (final Throwable ex) {
ex.printStackTrace(System.out);
}
}
public static void unsafe4(final Value value) {
System.out.println("Unsafe4");
try {
System.out.println(value.toString());
} catch (final Throwable ex) {
ex.printStackTrace(System.out);
}
}
}
@dmikurube
Copy link
Author

$ ./gradlew run
> Task :run
Picked up JAVA_TOOL_OPTIONS: -Duser.language=en
#1
Safe
Unsafe1
Unsafe2
null
Unsafe3
java.lang.NoClassDefFoundError: org/msgpack/value/Value
        at Sub.unsafe3(Sub.java:24)
        at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: org.msgpack.value.Value
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 2 more
Unsafe4
java.lang.NullPointerException
        at Sub.unsafe4(Sub.java:33)
        at Main.main(Main.java:8)
#2

BUILD SUCCESSFUL in 673ms
2 actionable tasks: 1 executed, 1 up-to-date

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment