Инсталлятор «Виолы»

Вчера я хотел кое-что потестировать в «Виоле» на другом ноутбуке и понял, что я понятия не имею как её нормально там запустить. Причина в том, что «Виола» требует несколько внешних утилит для работы, плюс библиотеки,.. в общем, я решил, что пора сделать инсталлятор.

Так как с собой пришлось тащить ещё и «Кварц» (XQuartz), то лучшим выбором был dmg — файл с монтируемой файловой системой. Хорош он тем, что просто делается и легко стилизуется. Я, например, сделал внутри обои, вдохновлённые внешним видом браузера и поместил портрет автора с его старой домашней странички.

По-моему, вышло очень симпатично.

Скриншот окна установки ViolaWWW Hypermedia Browser: иконки XQuartz-2.8.5.pkg и ViolaWWW.app, папка Applications, инструкция по установке и фото автора Pei-Yuan Wei.

Для сборки сделал две новые цели — make app для сборки самого приложения и make dmg для сборки инсталлятора.

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

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

Добавлено позднее: код собран по процессоры АРМ и под «МакОС» 26.

8 комментариев

JOPA: Javac One Patch Away

Пока я тут использую нейросети для развлечения, некоторые ребята пробуют их для чего-то более полезного — например, один наш соотечественник (о чём можно догадаться по неймингу) за две недели дописал форк старого джава-компилятора Jikes, написанный на Си++. Теперь компилятор называется JOPA и поддерживает Джаву версий 5, 6 и 7.

Это может быть нужно, например, для «бутстрапинга» — когда нужно с «нуля», из исходников собрать джава-компилятор + рантайм + инструменты, без использования проприетарных бинарников.

Я попробовал у себя собрать этот компилятор. Сходу не удалось, но дописанное нейросетью можно нейросетью и запустить. В общем, пять минут и всё получилось.

Правда, на моём тестовом примере JOPA упала с ошибкой при попытке открыть rt.jar (это главный архив стандартной библиотеки), но это удалось решить, просто распаковав его рядом.

В общем, вывод такой: проект интересный, но это не полная JOPA, только компилятор, хотя и работоспособный, поэтому запустить скомпилированную в class программу нечем. У себя я запускал системной Джавой.

Скриншот терминала с командами настройки JAVA_HOME и сборки проекта BouncingBall.java, рядом — окно приложения с красным шаром на белом фоне.

Добавлено позднее: за такое меня ещё не благодарили, какой-то новый опыт:

Письмо от Paul S. с уведомлением о комментарии pshirshov в 7mind/jopa#21: «Thank your your contributions into JOPA», с ссылками на GitHub и отписку.

Оставить комментарий