Что значит "java: нет совпадений".имею в виду? - PullRequest
4 голосов
/ 26 июля 2010

При запуске Java из командной строки:

java -classpath bin:pellet-2.0.0/lib/* com.stuff.MyClass argumentTextStuff

Я получаю следующий ответ:

java: No match.

Что это значит?which java указывает на ожидаемый файл.И если я уберу звездочку, то получу ожидаемый класс не найдена ошибка.Поиски в Google не приносят пользы, потому что я постоянно получаю информацию о соответствии шаблонов регулярных выражений.

Ответы [ 4 ]

8 голосов
/ 26 июля 2010

Ах ... уже разобрался.Это работало, когда я использовал оболочку bash, однако * трактуется по-разному в оболочке tcsh.Поэтому мы перешли на bash, и это работает.Причина описана здесь (согласно предложению полигенных смазок в комментариях ниже).

3 голосов
/ 26 июля 2010

Это сообщение об ошибке bash (или любой используемой вами оболочки), а не java.

Это означает, что «bin: pellet-2.0.0 / lib / *» не соответствует ни одному файлу.

Не используйте подстановочные знаки в classpath.

1 голос
/ 26 июля 2010

Если * имеет значение, то проблема, вероятно, связана с тем, как он интерпретируется и кем. Попробуйте экранировать его так, чтобы оно передавалось как есть java.

Смотри также

0 голосов
/ 26 июля 2010

В Unix Shell вам часто нужно ставить такие вещи в одинарные или двойные кавычки, чтобы Shell расширял звездочку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...