Как использовать регулярное выражение в classpath Java манифеста? - PullRequest
7 голосов
/ 21 января 2011

Мне нужно использовать дополнительные банки во время выполнения программы. Я вручную добавляю jar-файлы в относительную папку ./lib и затем запускаю программу. Как мне определить classpath в файле манифеста?

Ответы [ 2 ]

11 голосов
/ 21 января 2011

Нельзя использовать регулярные выражения или другие символы подстановки в атрибуте Class-Path вашего манифеста.

Существует только один поддерживаемый символ подстановки в Java, который работает только в том случае, если он указан в командной строке«ручной» java вызов (т. е. без использования -jar): с использованием directoryname/*.

2 голосов
/ 21 января 2011

Я не совсем уверен, что именно вы хотите, но вы можете добавить банки во время выполнения:

  • список (jar) файлов с помощью File.list () в каталоге, содержащем jar
  • сделать регулярное выражение для имен файлов, которые вы получаете
  • используйте URLClassLoader для загрузки jar

Я не знаю точно, как зарегистрировать (при необходимости) URLClassLoaders на основной загрузчик классов. Но я бы так и поступил.

...