Сомневаюсь в файле build.xml в Apache-Ant1.6.5 - PullRequest
0 голосов
/ 06 февраля 2009

Я использовал Коллекции в своем коде с Generics. Когда вы пытаетесь скомпилировать этот Java-файл в build.xml, он показывает ошибку в шаблонах и говорит, что это не утверждение. Я использую Apache-Ant-1.6.5, и я установил только JDK 1.5. Я знаю, что generic будет поддерживать в jdk1.5, но он показывает ошибку. Ниже приведена ошибка, которую я получаю для кода

код:

Map<String, String> inputconfigmap = 
    new LinkedHashMap<String, String>();

Исключение:

compile:
    [mkdir] Created dir: D:\GenericPreProcessor\Source\classes
    [javac] Compiling 49 source files to D:\GenericPreProcessor\Source\classes
    [javac] D:\GenericPreProcessor\Source\src\com\dnb\genericpreprocessor\fileprocessor\FixedLength
FileProcessor.java:187: not a statement
    [javac] Map<String, String> inputconfigmap = 
                new LinkedHashMap<String, String>();

Я сделал согласно вашему предложению, но получил следующее в консоли.

Консоль:
D: \ GenericPreProcessor \ Source> муравей
Файл сборки: build.xml
[echo] Версия JVM 1.5
[echo] Целевая компиляция $ {ant.build.javac.target}

чистый:
[удалить] Удаление каталога D: \ GenericPreProcessor \ Source \ classes

cleanJar:

компилировать:
[mkdir] Создан каталог: D: \ GenericPreProcessor \ Source \ classes
[javac] Компиляция 49 исходных файлов в D: \ GenericPreProcessor \ Source \ classes
[javac] javac: неверный целевой выпуск: 1.5
[javac] Использование: javac
[javac] где это возможно:
[javac] -g Создать всю информацию отладки
[javac] -g: нет Создать информацию об отладке
[javac] -g: {lines, vars, source} Генерировать только некоторую отладочную информацию
[javac] -nowarn Создать предупреждение
[javac] -verbose Вывод сообщений о том, что делает компилятор
[javac] -deprecation Выходные местоположения источников, где используются устаревшие API
[javac] -classpath Укажите, где искать файлы классов пользователя
[javac] -sourcepath Укажите, где искать исходные файлы ввода
[javac] -bootclasspath Переопределить расположение файлов классов начальной загрузки
[javac] -extdirs Переопределить расположение установленных расширений
[javac] -d Укажите, где разместить сгенерированные файлы классов
[javac] -encoding Укажите кодировку символов, используемую исходными файлами
[javac] -source Обеспечить совместимость исходного кода с указанным выпуском
[javac] -target Создать файлы классов для конкретной версии виртуальной машины
[javac] -help Распечатать краткий обзор стандартных опций

СТРОИТЬ СБОЙ

Ответы [ 5 ]

2 голосов
/ 06 февраля 2009

Вы пытались явно установить атрибуты source и target для своей задачи javac ?

<target name="compile">
    <javac .....
        source="1.6"
        target="1.6" />
</target>
1 голос
/ 06 февраля 2009

Может быть, вы можете проверить версию вашего компилятора с помощью:

<echo>JVM version is ${ant.java.version}</echo>
<echo>Target compilation is ${ant.build.javac.target}</echo>

И вы можете добавить <property name="ant.build.javac.target" value="1.5" />, чтобы заставить компилятор использовать соответствие Java 5 ... Это свойство является целью по умолчанию для ant 1.7, для ant 1.6 я думаю, что вы должны добавить target="${ant.build.javac.target}" к вашей цели javac.

0 голосов
/ 06 февраля 2009

Вы используете двойные угловые скобки (<< и >>)? Они должны быть одинокими, как показали киланнакакисы:

Map<String, String> inputconfigmap  = new LinkedHashMap<String, String>();
0 голосов
/ 06 февраля 2009

Попробуйте

Map<?, ?> inputconfigmap = new LinkedHashMap<?, ?>(); 
0 голосов
/ 06 февраля 2009

Вам необходимо определить тип карты, т.е.:

Map<String, String> inputconfigmap  = new LinkedHashMap<String, String>(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...