Почему java -jar игнорирует твой -cp и как это обойти

Привет, Хабр!
Когда java -jar
цинично игнорирует ваш -cp
, хочется грустить, но спокойствие, сегодня рассмотрим, почему так происходит и как это обойти.
Объектно-ориентированный язык программирования
Привет, Хабр!
Когда java -jar
цинично игнорирует ваш -cp
, хочется грустить, но спокойствие, сегодня рассмотрим, почему так происходит и как это обойти.
В первой части статьи с помощью инструмента Jmix AI Assistant начато создание системы для проведения онлайн курсов.
Были сгенерированы сценарии использования (use cases), разработана UML-диаграмма в формате PlantUML для этих use cases, разработана доменная модель для системы и ее реализация на JMIX. Далее все классы разбиты по пакетам.
Продолжим эксперименты по разработке кода с помощью Jmix AI Assistant, включая следующие:
- Генерация класса, заполняющего доменную модель тестовыми данными
- Генерация REST API для модели домена, включая создание контроллеров и REST сервисов
- Генерация пользовательского интерфейса
Команда Spring АйО перевела статью про новую версию AOT-репозиториев, которые позволяют генерировать реализацию методов запросов на этапе сборки. Это ускоряет запуск приложений, снижает потребление памяти и делает поведение репозиториев более прозрачным для разработчиков.
¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует.
² и да, довольно-таки глубоко.
³ нет, серьёзно!
Давайте рассмотрим следующий бизнесовый кейс.
Дано: реально большие данные. Очень много датасетов по много терабайтов каждый, — в сумме объём тянет на петабайты. Лежат в облаке, но это не важно. Важно, что мы эти данные покупаем в «сыром» виде, каким-то образом «готовим», а потом перепродаём конечному потребителю.
Требуется: при подготовке каждого из датасетов разделить его согласно значениям одного или нескольких полей, составляющих его записи, на несколько. И это одна из особенно часто встречающихся в нашем процессе операций.
Довольно-таки сложный, продвинутый ETL у нас. Поясню на типичном примере.
Команда Spring АйО перевела статью эксперта Михаила Поливахи о том, почему правило о единственном assert'е на тест иногда можно и нужно нарушать.
Вы начали свой первый проект, используя автоматизацию бизнес-процессов как сервис с Camunda Cloud? Одной из первых задач будет набросать базовую архитектуру вашего решения. Этот блог-пост поможет вам ответить на важные начальные вопросы: как подключить движок выполнения процессов Zeebe к вашему приложению или к внешним системам? Что такое job worker, какую роль он играет и сколько их вообще нужно?
Здравствуйте, эта статья не про аниме, но мы точно знаем как пропатчить Intellij Idea для FreeBSD. И не боимся об этом рассказывать.
С приходом популярности генеративных нейросетей, другие виды искусственного интеллекта тоже получили своё место под солнцем. Однако, ещё до этого уже существовали проекты, где искусственный интеллект играет в различные игры, получает очки за достижение целей и обучается на основе своих результатов. При этом, у каждого игрового ИИ есть свой массив доступных ему действий, который может быть постоянным или изменяемым согласно правилам. Я решил собрать небольшой проект, описать механизм взаимодействия ИИ с игровым пространством, а уже потом наполнить игру правилами и смыслом.
Это текстовая версия доклада с HighLoad++ 2024, с которым выступал один из наших бывших девелопер-адвокатов @RustamKuramshin Также есть отдельная запись доклада, сделанная силами участников программного комитета HighLoad++.
Разработка HL-решения со строгим SLA по RPS и latency затрагивает множество аспектов. В частности OLTP, мультиплексирование запросов, неблокирующий I/O и прочее. В данной статье хотел бы поговорить про сборку мусора. Мы не будем погружаться в цитирование спецификации. Напротив, взглянем на сборку глазами инженера, перед которым стоит задача оптимизировать процесс с минимальными издержками.
Приветствую всех! В своей прошлой и по совместительству первой статье я рассказывал про упаковку приложения в докер контейнеры. В комментариях мне сделали замечание, что я не упомянул про защиту приложения и запуск от non-root. Что ж, исправлюсь и сделаю это в отдельной статье. Напомню, что я написал простое приложение для голосование за лучший ресторан и попытался по простому объяснить как произвести его контейнеризацию. Также уточню, что упор я делаю именно упаковку приложения в докер контейнеры, а не на бизнес-логику и UI.
Всем привет! Судя по ответам, которые мы получили от посетителей конференций Joker, Heisenbug и JPoint, примерно в половине компаний есть требования по набиванию тестового покрытия (обычно 60-70% кода должно быть покрыто тестами).
Однако, при личном общении с разработчиками и тестировщиками мы постоянно слышим, что никаких требований нет и покрытие никак не контролируется.
Кто отвечает за тестовое покрытие? Должны его набивать разработчики или эта задача ложится на плечи тестеров? Будем благодарны, если ответите на 1 (один) вопрос. Если хочется поговорить о наболевшем и рассказать, как у вас в проекте обстоят дела с тестовым покрытием, пишите в комментарии.
Всем хорошей пятницы и классных выходных!
Скачать последнюю версию Explyt Test плагина можно на сайте или напрямую с GitHub.
Для обратной связи и сообщений об ошибках: GitHub Issues
Для общения: t.me/explyttest
Сегодня Java исполняется 30. Три десятилетия — это эпоха. За это время технологии успели смениться кардинально, а некоторые модные языки — появиться, поиграть мускулами и тихо исчезнуть. А Java по-прежнему тут. Она не просто "ещё жива" — она стабильно занимает лидирующие места в рейтингах, используется в крупнейших корпорациях и продолжает эволюционировать. Как так получилось?
В этой статье я расскажу, почему Java прожила 30 лет и всё ещё чувствует себя уверенно: как она развивалась, как решаются проблемы производительности JVM, и почему на неё до сих пор делают ставку разработчики, архитекторы и CTO.
Команда Spring АйО перевела новость о стратегическом партнёрстве Kotlin и Spring. Полная null-безопасность, официальные обучающие материалы, мощная рефлексия и выразительный DSL — звучит многообещающе.
Когда одних юнит-тестов уже недостаточно, на сцену выходят интеграционные. В этой статье от команды Amplicode мы покажем, как протестировать REST API в Spring Boot с использованием современного стека: генерация тестов через Amplicode, автоматический запуск окружения с помощью Docker Compose Starter и поддержки со стороны LLM-инструментов от Яндекса.
Команда Spring АйО перевела статью об использовании аннотации @Transactional
для управления транзакциями в Spring и в различных фреймворках экосистемы Spring, а также о ее интеграции с Hibernate. После прочтения данной статьи вы будете гораздо лучше понимать основы работы с этой аннотацией, а также механизмы, которые работают под капотом при ее использовании.
В этой статье проведены параллели между обработкой ошибок в feign и reactivefeign клиентах на примере реализации starter, который реализует аутентификацию по OAuth 2.0 в spring reactive подходе. В этой статье не будет описания реактивного стека. Если Вы хотите разобраться, какие есть преимущества и зачем его применять, рекомендую посмотреть эту серию статей. В этой статье не будет сравнения реактивного и нереактивного подхода. Для этого есть такая статья. В этой статье я хочу показать, что перевод компонентов на реактивность - несложная задача по рефакторингу, которая не займет много времени. Добавить монетку в копилку того, что перевод на реактивность - процесс, основные затраты в котором нужно сделать на первом шаге, когда Вы решаетесь применять этот подход, а адаптировать существующие компоненты просто.
С радостью сообщаем, что успешно состоялся первый мажорный релиз Amplicode в 2025 году. Этот релиз включает множество улучшений, исправлений и новых фич. Вот основные из них:
* Поиск по эндпоинтам
* Улучшенный HTTP Client
* Editor Inlay
* Улучшенная генерация Docker-файлов
* Интеграция с DBeaver
* Spring Boot Initializer
Команда Spring АйО перевела статью про новые функции и возможности, добавленные в Hibernate ORM версии 7.0 : новая лицензия Apache 2.0, переход на Jakarta Persistence 3.2 и Java 17, замена HCANN на Hibernate Models, а также множество улучшений для работы с JSON, XML, enum, soft-delete и запросами.
Добавлено экспериментальное API для batch-операций, Set-returning functions и удобный доступ к кэшу первого уровня.
Многие наверняка сталкивались с ситуацией, когда при открытии файла в текстовом редакторе (например, Word) вместо ожидаемого текста появляется хаотичный набор символов: или «кракозябры». Такое происходит, когда программа неправильно определяет кодировку файла — набор правил, по которым символы преобразуются в двоичный код.
Каждый формат файла (TXT, DOCX, PDF и другие) имеет свою структуру и использует определённую кодировку для хранения данных. Если приложение неверно интерпретирует эти правила, текст становится нечитаемым.