LINUX.ORG.RU
решено ФорумGames

Project Zomboid - Exception in thread «main»

 , ,


0

1

Нативная версия игры c GOG, последняя версия. Gentoo.

Устанавливается без вопросов. При попытке запуска через ярлык - никакого видимого эффекта. При запуске скрипта через консоль - следующего вида сообщение об ошибке:

./start.sh
Running Project Zomboid
64-bit java detected
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0
Exception in thread "main" java.lang.ExceptionInInitializerError
        at zombie.gameStates.MainScreenState.main(MainScreenState.java:130)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:951)
        at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738)
        at org.lwjgl.opengl.Display.<clinit>(Display.java:138)
        ... 1 more

По поводу моего JRE:

java-config -v
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (IcedTea 3.10.0) (Gentoo icedtea-3.10.0)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Гугление по теме дало некоторое понимание, в чем смысл ошибки, но не дало никакого понимания того, что же с ней делать. Если кто сталкивался или просто имеет что сказать - буду благодарен. Спасибо.



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

Было проведено некоторое исследование файлов игры. Оказалось, что здесь сразу в комплекте и библиотеки, и окружение java, всё своё засунуто в комплект. То есть jre на моей машине никак (я полагаю) не задействуется. Что еще интересно, в комплекте сразу и 32-х, и 64-х битные версии джавы, при этом в комплекте есть скрипт, проверяющий, какая версия джавы в наличии, но он выдаёт ошибку, потому что в наличии версий сразу две.

Попытка напрямую запустить jar, который по названию выглядит как основной исполняемый файл (pzexe.jar) не удаётся, no main manifest attribute, in pzexe.jar.

Здорово это всё, конечно, но уж очень поиграть охота, игрушка хорошая.

Flagitio
() автор топика

Кроссплатформенно, говорили они. Написал один раз - запускай всюду, говорили они.

anonymous
()

Можно ссылочку хоть? Или на файлообменник залить? Посмотрел бы на содержимое этого start.sh

Очень похоже на кривые руки программистов, но что поделать. Можно попробовать с помощью бубна и какой-то там матери запустить всё же.

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

Сейчас заархивирую и залью на мегу.

Flagitio
() автор топика

Xrandr установлен? Если нет, установи.

Java игры, использующие относительно новый LWJGL, выдают подобные ошибки, если не установлен xrandr.

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

Да это программисты конченные, во всяком случае в данной ситуации.

А по поводу ошибки, попробуйте установить нормальную oracle-jre-bin ветки 1.8 для начала, в дереве есть, хоть и отстаёт на год постоянно. Может быть и придёт тот день когда опенсорсная версия научится запускать софт, только 1.8 это не касается в любом случае.

linuxnewbie
()
Ответ на: комментарий от Kron4ek

Крон, ну ты просто голова, randr у меня не было, уж не знаю, почему он в профиле не указан, но я его подтянул и игра запустилась. Просто чудеса какие-то.

Правда она запустилась, но что-то никакого главного меню не появляется, всё доходит до такого вида, на чём и останавливается: https://ibb.co/P5YMyd0

Игра не зависает в прямом смысле слова, потому что эта заставка динамическая, там молния иногда сверкает, музыка звучит. Но я ожидал, что в игре как-то побольше будет контента, нежели просто созерцание одной картинки, пусть и красивой.

По идее, где-то тут должны появляться пункты меню, которых нет.

Flagitio
() автор топика
Ответ на: комментарий от anonymous

У меня, скажем, нет возможности её получить. Бабушка лазила в машине и каким-то образом закрыла доступ к адресам всех гоговских сервисов :) Пока бабушка не признается, что она конкретно натворила, никакой техподдержки я не получу.

Flagitio
() автор топика
Ответ на: комментарий от Flagitio

но я его подтянул и игра запустилась

Плохо то, что вот эти ошибки неинформативны, и по ним считай невозможно понять, в чем именно дело. Я года 3 назад методом тыка понял, что проблема в xrandr (даже вот на форуме lwjgl тему создавал).

Правда она запустилась, но что-то никакого главного меню не появляется, всё доходит до такого вида, на чём и останавливается

А ошибок больше никаких нет? Может шрифтов каких не хватает и игра не может отобразить меню.

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

Может шрифтов каких не хватает

Я об этом думал, в самом деле, есть такая вероятность. Сейчас запущу из терминала, гляну вывод.

Я просто не знаю, как это работает, но после запуска из терминала появился и чейнджлог, и меню, вся начинка. Я ничего не менял, просто запустил скрипт не щелчком мыши, а командой. Бог знает, как оно работает вообще, но вроде работает. Может, ему нужно было создать какие-то папки и файлы первым запуском, а на второй всё уже заработало.

Сейчас потестирую, поиграюсь, если какие-то ошибки появятся, то сообщу. Если не сообщу ничего - значит игра работает нормально.

Flagitio
() автор топика
Ответ на: комментарий от Flagitio

В любом случае руки у программистов кривые, раз вместо внятного сообщения об ошибке об отсутствующей библиотеке программа пуляет java.lang.ArrayIndexOutOfBoundsException - это «детская» ошибка.

BattleCoder ★★★★★
()

любители проприетарного говна должны страдать. Страдай, раб копирастии и проприетаря!!!

anonymous
()
Ответ на: комментарий от BattleCoder

В любом случае руки у программистов кривые

Справедливости ради игра использует легаси версию LWJGL. Вот где возникает исключение:
https://github.com/LWJGL/lwjgl/blob/master/src/java/org/lwjgl/opengl/LinuxDis...

раз вместо внятного сообщения об ошибке об отсутствующей библиотеке программа пуляет

Я с либой не знаком, но быстрый осмотр показал, что метод getBestDisplayModeExtension() зафейлил определить, что XRANDR отсутствует.

anonymous
()
Ответ на: комментарий от anonymous

Уж не знаю, как твое высказывание касается меня, потому что у меня даже в ядре блобов нет, дрова все свободные использую. А то, что игры лицензируются несвободно - ну тут ничего не поделать, разработчик хочет кушать. А я хочу играть.

Flagitio
() автор топика
Ответ на: комментарий от BattleCoder

Ошибок не наблюдаю, всё работает хорошо. Слегка подлагивает иногда, разве что. Вопрос решён. Всем спасибо.

Flagitio
() автор топика
Ответ на: комментарий от linuxnewbie

Касательно проприетарного jre от oracle - ебилд подразумевает, что пользователь самостоятельно скачает исходник с сайта oracle и поместит его в директорию портажа. Скачать с офсайта этот tar.gz без регистрации нельзя, а регистрироваться у них я не желаю. Да и вообще, может они денег хотят за свой runtime environment.

Flagitio
() автор топика
Ответ на: комментарий от Flagitio

А, извините, оказывается Оракл больше не даёт скачать вообще никакие файлы без регистрации. Грустно это всё. // Мой аккаунт с их сайтов в прошлый раз попал к спамерам, больше не хочу.

linuxnewbie
()
Ответ на: комментарий от linuxnewbie

Думаешь, это поменяет саму затею этого ебилда? Прикол-то его в том, что он не тянет исходники, а требует их скачать и предоставить вручную. Вряд ли он сам потянет тарболл, если я поменяю руками номер версии. Откуда тянуть-то? Регистрироваться у ораклов я не хочу. Да и вообще, есть icedtea, зачем делать троллейбус?

Flagitio
() автор топика
Ответ на: комментарий от Flagitio

У меня был однострочник который скачивал тарбол с сайта, они раньше раздавалии без регистрации. Мне кажется рано закапывают, до сих пор куча софта на 1.8 завязана.

linuxnewbie
()
Ответ на: комментарий от anonymous

Для меня графика в играх не особо важна, так что эту придирку я опущу. Даже если не учитывать внешнюю убогость этих игр, загружать их мне как-то все равно не хочется. Ну нет хороших свободных игр, только если это не порты/клоны старых несвободных игр, и то. В openttd я бы поиграл разве что, остальное - хлам какой-то.

Flagitio
() автор топика
Ответ на: комментарий от linuxnewbie

только она никогда не работает в 99% случаев? И говорили что более уязвима к эксплойтам?

Из любопытства спрошу - а есть источник для обоих утверждений? И тогда что насчёт openjdk?

Flagitio
() автор топика
Ответ на: комментарий от Flagitio

Openjdk только сейчас приводят к адекватному состоянию, согласно всё тем же слухам. Мой софт использует 1.8, не могу проверить.

linuxnewbie
()
Ответ на: комментарий от Flagitio

Случайно взятая игрушка работает с openjdk12 (без всяких icedtea), правда жалуется на что-то:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.lwjgl.LWJGLUtil$3 to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.lwjgl.LWJGLUtil$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

И java-config предлагает выбирать icedtea или ничего, в данном случае ничего.

linuxnewbie
()
Ответ на: комментарий от linuxnewbie

Тем не менее, почему-то мэинтейнеры решили использовать именно icedtea по-умолчанию как virtual/jdk. Не вижу оснований не доверять своему дистру. Ну если вдруг когда-то что-то не сработает, причем конкретно из-за джавы, тогда поглядим. Пока вопросов не было.

Flagitio
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.