CLASSPATH vs java.ext.dirs

есть ли причина, по которой следует использовать (возможно, очень длинную) переменную CLASSPATH , чтобы указать, какие jar-файлы должны находиться в пути к классам при запуске приложения, а затем использовать свойство java 1.5+ -Djava.ext .dirs , в котором указывается весь каталог (каталоги) файлов jar для поиска?

Чтобы сделать его реальным примером, у меня есть автономное приложение java с папкой lib , содержащей все зависимые файлы jar. Sofar сценарий запуска устанавливает все (возможно, 20) jar-файлов в переменную CLASSPATH один за другим. Поскольку теперь мой архив приложений создается Maven, я не могу заранее увидеть, какими будут имена jar (например, я меняю версию JAR). Конечно, я могу пройти через каталог lib в сценарии запуска и снова добавить все найденные там jar-файлы в переменную CLASSPATH . Или, возможно, заставьте maven сгенерировать для меня этот скрипт. Но вот вопросы:

1) Было бы хорошо и целесообразно заменить все это, просто установив свойство java.ext.dirs , чтобы оно содержало то, что оно содержит + мои дополнительные lib каталог в моем скрипте? Есть ли здесь скрытые оговорки?

Спасибо за ответы :)

17
задан skaffman 4 January 2012 в 23:33
поделиться