Муравей: Проверьте, существует ли класс в банке - PullRequest
1 голос
/ 07 мая 2009

Как проверить, существует ли определенный класс в jar-файле? Я пробовал доступное задание, и оно не работает

Если есть способ, могу ли я использовать в нем шаблоны?

Например, я хочу проверить, существует ли шаблон соответствия классов **/xyz/foo.class в foobar.jar

Любое направление приветствуется.

1 Ответ

2 голосов
/ 08 мая 2009

Доступное задание должно работать, если вы дадите ему точное имя класса. Вот пример из руководства Ant для available :

...in project ...
<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/>
<path id="jaxp" location="${jaxp.jar}"/>
...in target ...
<available classname="javax.xml.transform.Transformer"
           classpathref="jaxp" property="jaxp11.present"/>

Я не знаю ни одного способа поиска по шаблону, кроме написания вашей собственной задачи. Я думаю, вы могли бы использовать задачу unjar , чтобы извлечь шаблон во временный каталог, а затем проверить, существует ли файл. Например:

<property name="temp.dir" value="some_temp_directory"/>
<unjar src="foobar.jar" dest="${temp.dir}">
    <patternset>
        <include name="**/xyz/foo.class"/>
    </patternset>
    <mapper type="flatten"/>
</unjar>
<available property="foo.present" file="${temp.dir}/foo.class"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...