LINUX.ORG.RU

Unable to start: java.lang.reflect.InvocationTargetException

 ,


1

0

Привет!

Есть у меня комп, AMD Athlon 64 X2. Там такая странность - не работает лицензионный лаунчер Майнкрафта с JRE больше 1.6. Начиная с версии 1.7, вот такая ошибка:

$ java -jar Minecraft.jar
Bootstrap (v5)
Current time is May 20, 2018 11:15:43 AM
System.getProperty('os.name') == 'Linux'
System.getProperty('os.version') == '3.0.101-420.g8bbeb55-default'
System.getProperty('os.arch') == 'amd64'
System.getProperty('java.version') == '1.8.0_144'
System.getProperty('java.vendor') == 'Oracle Corporation'
System.getProperty('sun.arch.data.model') == '64'

Looking for update
Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma
Got reply in: 1316ms
Found update in time, waiting to download
Downloaded 1076,7kb in 5s at 207,8kb/s
Renaming /home/zenitur/.minecraft/launcher.pack.lzma.new to /home/zenitur/.minecraft/launcher.pack.lzma
Renamed successfully.
Reversing LZMA on /home/zenitur/.minecraft/launcher.pack.lzma to /home/zenitur/.minecraft/launcher.pack
Unpacking /home/zenitur/.minecraft/launcher.pack to /home/zenitur/.minecraft/launcher.jar
Cleaning up /home/zenitur/.minecraft/launcher.pack
Starting launcher.
[11:15:55 INFO]: Minecraft Launcher 1.6.89-j (through bootstrap 5) started on linux...
[11:15:55 INFO]: Current time is May 20, 2018 11:15:55 AM
[11:15:55 INFO]: System.getProperty('os.name') == 'Linux'
[11:15:55 INFO]: System.getProperty('os.version') == '3.0.101-420.g8bbeb55-default'
[11:15:55 INFO]: System.getProperty('os.arch') == 'amd64'
[11:15:55 INFO]: System.getProperty('java.version') == '1.8.0_144'
[11:15:55 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
[11:15:55 INFO]: System.getProperty('sun.arch.data.model') == '64'
[11:15:55 INFO]: proxy == DIRECT
[11:15:55 INFO]: JFX is already initialized
[11:15:56 INFO]: Refreshing local version list...
[11:15:57 INFO]: Refreshing remote version list...
1   0x7f21e0f956e7
2   0x7f21e0fdc28b
3   0x7f21e0d7cca0
4   0x7f21e0b476df
5   0x7f22420c2c80 pthread_once
6   0x7f21e0b477f3
7   0x7f21e03be087 Java_com_sun_webkit_WebPage_twkCreatePage
8   0x7f222cbce834
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f21e0f956ec, pid=24352, tid=0x00007f22001f7700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_144-b01) (build 1.8.0_144-b01)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.144-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjfxwebkit.so+0x1d366ec]  WTFCrash+0x1c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/zenitur/hs_err_pid24352.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Аварийный останов

Проблема - именно в процессоре. Потому что:

  1. В другом дистрибутиве Linux - то же самое
  2. Если переставить жёсткий диск на комп с другим, более новым процессором - AMD FX - то там всё нормально

Мне было как-то плевать: играл со старой Явой.

Начиная с релиза Minecraft 1.10, обновили требования к Яве. Теперь 1.8 минимум. Ну что ж делать. Играл с пиратским лаунчером. Потом я запустил Minecraft на Raspberry Pi. А там - как раз без лаунчера запуск. Решил попробовать применить эту инструкцию.

Упс. А в инструкции есть такие пункты: "Запустите лаунчер, скачайте файлы данных. Потом «накатите» Optifine. Потом запускайте этим sh-скриптом". Ага, лаучер нужно запустить один раз! Хм. У меня тут Java 1.8, я могу в синаптике «Указать версию...» 1.6, сделать всё что нужно, а потом установить обратно 1.8. Но мой 4G-интернет с лимитом 5 Гб/мес это не одобрит.

Распаковал RPM-ку jre-6u45-linux-x64.rpm при помощи архиватора file-roller в пространство пользователя (чтобы не конфликтовать с системным пакетов). Запускаю:

/home/zenitur/jre1.6.0_45/bin/java -jar Minecraft.jar
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Решение нашлось по первому запросу. Теперь такое:

/usr/java/jre1.6.0_45/bin/java -jar Minecraft.jar
Bootstrap (v5)
Current time is May 20, 2018 12:47:42 PM
System.getProperty('os.name') == 'Linux'
System.getProperty('os.version') == '3.0.101-420.g8bbeb55-default'
System.getProperty('os.arch') == 'amd64'
System.getProperty('java.version') == '1.6.0_45'
System.getProperty('java.vendor') == 'Sun Microsystems Inc.'
System.getProperty('sun.arch.data.model') == '64'

Looking for update
Exception: java.net.MalformedURLException: unknown protocol: https
Exception in thread "Launcher downloader" java.lang.NoClassDefFoundError: javax/net/ssl/SSLHandshakeException
        at net.minecraft.bootstrap.Downloader.suggestHelp(Downloader.java:141)
        at net.minecraft.bootstrap.Downloader.run(Downloader.java:131)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.net.ssl.SSLHandshakeException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 3 more
Didn't find an update in time.
Reversing LZMA on /home/zenitur/.minecraft/launcher.pack.lzma to /home/zenitur/.minecraft/launcher.pack
Unpacking /home/zenitur/.minecraft/launcher.pack to /home/zenitur/.minecraft/launcher.jar
Cleaning up /home/zenitur/.minecraft/launcher.pack
Starting launcher.
FATAL ERROR: net.minecraft.bootstrap.FatalBootstrapError: Unable to start: java.lang.reflect.InvocationTargetException
        at net.minecraft.bootstrap.Bootstrap.startLauncher(Bootstrap.java:242)
        at net.minecraft.bootstrap.Bootstrap.execute(Bootstrap.java:124)
        at net.minecraft.bootstrap.Bootstrap.main(Bootstrap.java:381)


Please fix the error and restart.

Короче, я загрузил Debian Squeeze 6 LiveCD, и скачал всё при помощи него. Там OpenJDK 1.6, и всё прошло нормально. Играю. Но мне всё-таки интересно, как же решить эту проблему?

Перемещено leave из talks

SIGSEGV (0xb) at pc=0x00007f21e0f956ec, pid=24352, tid=0x00007f22001f7700

Хах. Надо было JVM писать на Java, а не на C/C++.

[libjfxwebkit.so+0x1d366ec] WTFCrash+0x1c

И вместо WebKit'а тоже юзать что-нибудь на Java. P.S. WTF кстати это не то, о чём вы подумали, а Web Template Framework внутрях WebKit'а.

Обмажутся своими сями и сегфолтятся.

EXL ★★★★★ ()

Распаковал RPM-ку jre-6u45-linux-x64.rpm при помощи архиватора file-roller в пространство пользователя

Не стоит так делать никогда

1) Качаешь с сайта дистрибутив JDK (желательно именно его, а не JRE!)

2) Прописываешь переменную окружения JAVA_HOME= (куда ты распаковал архив)

3) Добавляешь в PATH директорию bin. Типа: export PATH=$JAVA_HOME/bin:$PATH

Радуешься.

Советую попробовать вначале на JDK8 отсюда: https://www.azul.com/downloads/zulu/zulu-linux/

На 10 и 11 может ломаться совместимость, поэтому пробовать только если большой любитель исследований

Если Азуловская не проканает, можно скрепя сердем попробовать Оракловскую отсюда: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315...

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

1) Качаешь с сайта дистрибутив JDK (желательно именно его, а не JRE!)

Но зачем?

2) Прописываешь переменную окружения JAVA_HOME= (куда ты распаковал архив)

Но зачем?

iZEN ★★★★★ ()
Ответ на: комментарий от Dimez

JDK8 умер, если что. В дальнейшем его сборки будет поддерживать Азул.

И Азул - это не «непонятно что», а одна из самых известных компаний в джава-мире. Это чуваки, написавшие ZingVM с GC на котором сейчас сидят самые жирные ынтерпрайзы. (Shenandoah и ZGC его, возможно, в будущем немного потеснят)

stevejobs ★★★☆☆ ()
Ответ на: комментарий от ritsufag

У JDK8 конец жизни наступает в этом сентябре. Оракл больше не будет ей заниматься. (Но будет за большие деньги будет выпускать платные закрытые от общественности патчи с закрытой лицензией).

Но есть предположение, что Azul все так же будет продолжать делать пересборки и даже бэкпортить что-то совсем критическое. В отличие от васянов, Азулу можно верить.

Впрочем, можно верить не только Азулу, но и другим системообразующим компаниям Java Community Process. Например, у SAP есть SAP Machine: https://tools.hana.ondemand.com/#cloud

В любом случае, об Оракле применительно к мертвой Java 8 можно забыть

Лично я всем советую переходить на Java 11 и не мучиться. Но для всякого дичайшего легаси типа Майнкрфта там могут возникнуть проблемы портирования, если они завязались на всякие нестандартные вещи (а многие завязываются)

stevejobs ★★★☆☆ ()
Ответ на: комментарий от Dimez

Вообще я постоянно фигею с такого ".NET-ориентированного" мировоззрения :)

Это если ты дотнетчик, то у тебя есть Майкрософт и всё. Один язык, один бог, один сайт, один раздел /downloads

В мире Java кроме Оракла есть огромное количество компаний. Зачастую, делающие продукт более лучший, чем Оракл. Сборок разных JVM огромное множество, нужно смотреть и разбираться

stevejobs ★★★☆☆ ()
Ответ на: комментарий от stevejobs

И Азул - это не «непонятно что», а одна из самых известных компаний в джава-мире. Это чуваки, написавшие ZingVM с GC на котором сейчас сидят самые жирные ынтерпрайзы. (Shenandoah и ZGC его, возможно, в будущем немного потеснят)

Спасибо за разъяснения, я не совсем в джава-мире, поэтому для меня это не аксиома.

Dimez ★★★★★ ()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Не стоит так делать никогда

Ггг, особенно мне понравились 2 ссылки с твоего любимого азула

http://zulu.org/zuludocs-folder/#ZuluUserGuide/PrepareZuluPlatform/AttachAzul...

http://zulu.org/zuludocs-folder/#ZuluUserGuide/InstallingZulu/InstallZulu.htm

Явно показывают, что ты неправ.

И да, большое спасибо за AZUL :)

Dimez ★★★★★ ()
Последнее исправление: Dimez (всего исправлений: 2)