Java/Linux/Докер 101: java.lang. NoClassDefFoundError: java/time/ZoneId

Я пытаюсь выполнить банку в докере. Я взял следующие шаги:

  1. докер sudo вытягивает Java
  2. докер sudo выполненный-i-t Java/bin/bash
  3. (В докере) завихрение - LO https://github.com/Netflix/atlas/releases/download/v1.4.1/atlas-1.4.1-standalone.jar
  4. Java - банка atlas-1.4.1-standalone.jar

Я получаю следующую ошибку:

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.simontuffs.onejar.Boot.run(Boot.java:340)
        at com.simontuffs.onejar.Boot.main(Boot.java:166)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at com.netflix.atlas.webapi.ApiSettings$.newDbInstance(ApiSettings.scala:33)
        at com.netflix.atlas.webapi.Main$$anon$1.configure(Main.scala:29)
        at com.netflix.atlas.akka.WebServer.start(WebServer.scala:37)
        at com.netflix.atlas.webapi.Main$.main(Main.scala:33)
        at com.netflix.atlas.webapi.Main.main(Main.scala)
        ... 6 more
Caused by: java.lang.NoClassDefFoundError: java/time/ZoneId
        at com.netflix.atlas.core.db.StaticDatabase.<init>(StaticDatabase.scala:33)
        ... 15 more
Caused by: java.lang.ClassNotFoundException: java.time.ZoneId
        at com.simontuffs.onejar.JarClassLoader.findClass(JarClassLoader.java:713)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at com.simontuffs.onejar.JarClassLoader.loadClass(JarClassLoader.java:630)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 16 more

root@17d3f6f54c1b:/# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@17d3f6f54c1b:/# echo $CLASSPATH
<not defined>

Я полагаю, что фиксация крайне проста, я просто не уверен, каково это.

Заранее спасибо!

1
задан 29 January 2015 в 16:12

1 ответ

Это, кажется, java.time.ZoneId, который был представлен в java 1.8. Можно ли сделать java -version и javac -version на контейнере Докера и/или где Вы создали его.

Мое предположение - то, что Вы скомпилировали на своей локальной машине с java 1.8 и затем продвинули его Докеру с более низкой версией Java на контейнере.

2
ответ дан 10 November 2019 в 10:57

Другие вопросы по тегам:

Похожие вопросы: