Я думаю, что @ Yishai имеет на это право (я дам ему право голоса за то, что он перевернулся). Я сталкиваюсь с этим все время. В то, что я считаю ужасным решением для языка Java, они решили, что было бы хорошо разрешить настройкам classpath идти в файлы MANIFEST внутри jar-файлов. В сущности, у Jars могут быть файлы внутри, которые указывают на другие классы и jar-файлы, расположенные в другом месте, и когда другие вещи, на которые они указывают, не существуют, вы видите предупреждения, подобные тем, которые вы получаете. Эти предупреждения приходят из файлов Jar, которые находятся на вашем пути к классам компиляции. Итак, что вам нужно сделать, если вы действительно заботитесь, так это отследить проблемные файлы JAR, извлечь содержимое файлов JAR, удалить настройки «Class-Path» в их файлах манифеста и воссоздать их. Примерно так (переместите jar во временный каталог куда-нибудь первым):
#Extract the jar file
jar xvf myfile.jar
rm myfile.jar
emacs ./META-INF/MANIFEST.MF
*Find the entry "Class-path:" and remove it completely and save the changes
#Rebuild the jar file
jar cvf myfile.jar ./*
Это должно сработать!
Я не думаю, что вы просто хотите подавить эти сообщения, потому что, если вы хотите получить полный контроль над тем, что происходит на вашем пути к классам, вы должны найти эти файлы манифеста и убедиться, что они не связываются с путем к классу так, как вы не знаю о.
Скорее всего, вам придется просматривать тонну jar-файлов, поэтому я обычно использую цикл оболочки, чтобы помочь мне просмотреть их. Вы можете скопировать все ваши JAR-файлы во временный каталог и запустить цикл, подобный следующему (синтаксис bash):
for i in *.jar; do echo $i; jar xf $i; grep -i 'class-path' ./META-INF/MANIFEST.MF; done
Это будет печатать имя каждого файла Jar в текущем каталоге, извлекать его содержимое и grep его файла манифеста для записей classpath. Если имя файла jar в выходных данных имеет распечатку «Class-Path» после него, это означает, что Jar имеет настройки пути к классам в своем манифесте. Таким образом, вы можете надеяться выяснить, над какими банками вам нужно действовать.