Почему у меня не работают групповые пути с подстановочными символами? - PullRequest
0 голосов
/ 21 июня 2011

Я использую JDK 1.6.0.25. Я пытаюсь включить classpath, например, так:

-cp .;Server.jar;Util.jar;../jars/**/*;./lib/*

Что бы я ни делал, это не работает, и мне в конечном итоге приходится обращаться к файлам в этих каталогах. Любая идея, как отладить это или кто-нибудь знает, что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

См. Настройки пути к классам (Раздел "Общие сведения о подстановочных знаках пути к классам")

Вы не можете использовать подстановочные знаки стиля Ant или Bash, вы можете использовать их только «стандартным» способом.

2 голосов
/ 21 июня 2011

Из документации по запуску приложений Java :

Записи пути к классу могут содержать подстановочный знак базового имени *, который считается эквивалентным указанию списка всех файлов вкаталог с расширением .jar или .JAR.

Обратите внимание, что нет упоминания о последовательности **, которая не будет интерпретироваться каким-либо разумным способом исполняемым файлом Java.Вы также не можете выполнять рекурсивный поиск в подкаталогах:

Подкаталоги не ищутся рекурсивно.Например, foo / * ищет файлы JAR только в foo, а не в foo / bar, foo / baz и т. Д.

Другими словами, все дочерние каталоги каталога jars вЗапись classpath ../jars/**/* должна быть указана явно, если вы собираетесь использовать подстановочные знаки непосредственно из командной строки.

...