TGViewer
Библиотека Java разработчика Библиотека Java разработчика @bookjava · 10K subscribers
Post #2659 1.99K
Компилирование «железного» бинарника Java-программы Google Closure Stylesheets с GraalVM

Closure Stylesheets -- это компилятор CSS, написанный Гугл на Java в рамках набора инструментов Closure Tools для веб-разработки, который в свое время обладал внушительными функциями такими как экспансия браузерных префиксов (например, для трансформации display: flex; в display: -webkit-flex; display: -ms-flexbox), переменными и др. Прошло уже более 10 лет с момента зачатия этого проекта, многие инновации уже укоренились, и в прошлом году его архивировали, т.к. все, включая сотрудников Гугл, используют мейнстрим утилиты типа SASS / autoprefixer. Я же успешно держу свой форк Exposure Stylesheets, потому что верю, что инструменты должны быть простыми и с душой из 2010х.

В статье речь пойдет про то, как я обновил свой форк с Java 1.8 на JDK 11 и использовал утилиту Oracle native-image из пакета GraalVM для того, чтобы собрать native binary, то есть бинарник с машинным кодом, который позволяет запускать программу вообще без Java. Я расскажу о том, какие проблемы встретил во время апгрейда, в том числе связанных с рефлексией, и сравню скорость запуска / работы / потребления памяти стандартного JAR и собранного bin.

https://habr.com/ru/articles/758300/

👉@BookJava
Хабр Компилирование «железного» бинарника Java-программы Google Closure Stylesheets с GraalVM Closure Stylesheets -- это компилятор CSS, написанный Гугл на Java в рамках набора инструментов Closure Tools для веб-разработки, который в свое время обладал внушительными функциями такими как...
  • 👍 4
  • 🤡 1
More from @bookjava
  1. Oct 12, 2026🧠 Проверяешь аргументы вручную? Используй мощь системы типов Java! 📌 Ситуация: часто в м…
  2. Oct 10, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  3. Oct 8, 2026📌 Обход коллекций в Java: делаем правильно! Часто вижу, как разработчики по привычке испо…
  4. Oct 7, 2026📌 Stream API: забудьте про peek() Метод peek() в Java Stream API выглядит удобным для отл…
  5. Oct 5, 2026🧠 Dependency Inversion Principle (D в SOLID) Зависимости должны идти от высокоуровневой п…
  6. Sep 30, 2026Три похожих слова в Java — final, finally, finalize — но смысл у них совершенно разный. Ра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →