У меня есть несколько файлов *.jar
внутри папки, которые все включены в путь к классам, чтобы запустить указанный основной класс в ОС Microsoft Windows. Это в настоящее время осуществляется так:Исключить класс или пакет внутри пути к классам при запуске приложения
@echo off
java -Xmx1024M -cp libs/*;. org.test.Main
Теперь у меня есть проблема, что внутри папки libs
есть два JAR-файлы, которые оба имеют один и тот же пакет org.test.configuration
. Оба они разные, и когда я запускаю программу, я получаю ошибки, потому что неправильная выбрана Java VM.
Как я могу исключить один специальный пакет или один специальный класс в моем стартовом скрипте? (Конечно, я мог удалить этот пакет из неправильной банки, но я не хочу использовать этот метод ...)
Я уже пробовал это, но, к сожалению, безуспешно. Я попытался поставить config.jar перед другим, а также наоборот. Но это всего лишь ложная фляга. Я, конечно, проверял, что класс конфигурации находится в обоих файлах jar в одном пакете. и неправильный возвращает объект NULL, поэтому я могу проверить.И когда я запускаю сервер, я всегда получаю исключение NullpointerException. Будет ли Java использовать другой конфигурационный класс, будет работать с полным функциональным объектом. Но java загружает только один ... – christopher2007
Я добавил [mcve], показывая, что изменение порядка jars в пути к классам влияет на то, какой jar/package используется JVM, если несколько баннеров содержат разные реализации одного и того же пакет/классы. Должен быть какой-то другой фактор, вызывающий вашу проблему. – AJNeufeld
Я нашел свою проблему: «реальный» конфигурационный JAR-файл не был включен в maven 'pom.xml'. В результате JAR-файлы имели класс конфигурации, но все остальные проекты включали неправильный класс конфигурации в качестве зависимости. Поэтому, хотя я привел «реальный» класс конфигурации в пути к классам, все еще использовался неправильный. кажется, что maven все еще обращает внимание на pom.xml, даже после создания файла jar. Потому что, когда я добавляю правильный, как зависимость, мы делаем именно то, что вы говорите :) ... но все же я скептически настроен. Так я исправлю это наблюдение? – christopher2007