build.xml вопрос муравья

Я получаю следующее исключение при запуске апплета: Исключение в потоке "AWT-EventQueue-4" java.lang.NoClassDefFoundError: ice/net/SnapshotCacheManager

но файл находится внутри банки.

Я искал в Интернете и обнаружил, что это может быть связано с тем, что апплет не просматривает текущий каталог, и мне нужно добавить .; в CLASSPATH, но я не уверен, как добавить его в build.xml

Спасибо

Дорон

Изменить: наконец, я понял, что это не проблема муравья или сборка XML, я получил это исключение, потому что я по-разному подписал две банки, содержащие один и тот же пакет, поэтому произошло столкновение, не очень информативное исключение....


person Doron Sinai    schedule 24.03.2011    source источник


Ответы (1)


может быть полезно посмотреть, что находится в вашем текущем файле build.xml, но раздел, на который вы, вероятно, захотите взглянуть, — это элемент <target>, а именно элементы <src path> и <fileset>. Вот ОЧЕНЬ грубый пример с некоторыми направляющими переменными.

<property name="classes.home"          value="/myproject/src"/>

<target name="compile_myproject" depends="clean">
    <javac destdir="${classes.home}" debug="off" optimize="on" deprecation="on">
        <classpath>
            <fileset dir="/location/of/jars/">
                <include name="*.jar"/>
                <exclude name="jar-I-dont-want.jar"/>
            </fileset>
            <fileset dir="/location/of/axis2/jars">
                <include name="**/*.jar"/>                    
            </fileset>
        </classpath>
        <src path="${classes.home}"/>
        <include name="/test/**/*.java"/>
        <include name="other/location/*.java"/>
        <exclude name="/debug/and/useless/files/**/*.java"/>
    </javac>
</target>

обратите внимание, что ${classes.home} — это специальная переменная, определенная в верхней части файла build.xml. Можно использовать множество переменных, чтобы упростить задачу и указать относительные пути.

person gnomed    schedule 24.03.2011
comment
но у меня проблема в том, что апплет не распознает файл внутри банки при запуске. как я могу определить это? - person Doron Sinai; 24.03.2011
comment
хм, это тяжело. забавно то, что я знаю, что видел то же самое исключение при очень похожих обстоятельствах (где все скомпилировалось и запустилось). Но я не могу вспомнить точную причину. Я предполагаю, что у вас есть правильные операторы импорта в верхней части ваших файлов классов, в противном случае это могло бы вызвать ошибки компиляции, я думаю (прошло некоторое время с тех пор, как я это сделал)... Вы проверили свой вывод компиляции, чтобы убедиться, что он скомпилирован без ошибки. Ant по-прежнему будет собирать банку со старым файлом класса, если он найдет его, который может не иметь такого же определения, возможно... это все, что у меня есть на данный момент... извините. - person gnomed; 25.03.2011