0

I'm trying to run a docker image but I keep having the error below

docker run -p 8080:8080 nacer/my-image-name-1
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)

This is my Dockerfile

FROM openjdk:8

EXPOSE 8080

ADD target/docker-demo-1.jar docker-demo-1.jar

ENTRYPOINT ["java","-jar","docker-demo-1.jar"]

Is that because because the java version? this my java version (java version "1.8.0_351")

I try to run spring boot application from my image in docker hub. I was expecting to run the spring application. after I type : docker run -p 8080:8080 nacer/my-image-name-1

  • 1
    It looks like you compiled it with a different version of Java. Classfile version 61 is from Java 17. You could either rebuild your docker image with `FROM openjdk:17` or recompile your `jar` using a 1.8 jdk (and then rebuild your docker image). – egeorge Dec 23 '22 at 18:47
  • [Docker run returns an exception: Application has been compiled by a more recent version of the Java Runtime](https://stackoverflow.com/questions/65682713/docker-run-returns-an-exception-application-has-been-compiled-by-a-more-recent) seems to cover a very similar question, and suggests either a Maven or Dockerfile change to address it. Does either of these approaches work for you? – David Maze Dec 23 '22 at 22:26
  • Thanks as you said I complied it with a different version of Java. – nacer kraa Dec 29 '22 at 22:47

0 Answers0