2017-01-10 6 views
0

D2RQ поставляется с скриптом построения ant, который отлично работает. Я могу скомпилировать в linux box, где версия ant по умолчанию - 1.8.2, а версия javac - 1.7.0_121.Компиляция D2RQ с муравьем

Я хочу скомпилировать D2RQ с Java 8. Я загрузил ant 1.10, для чего требуется Java 8 2.

Тогда я бег на некоторые вопросы:

  • Когда я бег муравья 1.10 без изменения параметра источника (или цели), муравей, кажется, успешно работать - даже если версия по умолчанию Явы на системе 1.7 (т. Е. < 8) - Я ожидал, что он пожалуется, что у него не было допустимой версии java?

  • Я попытался модифицировать compile цель в файле build.xml из

    source="1.5" 
    target="1.5" 
    

    в

    source="1.8" 
    target="1.8" 
    

    , но я получаю ошибку:

    compile: 
        [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc 
        [javac] javac: invalid target release: 1.8 
    

    I получите ту же ошибку, если я заменил «1.8» на «8», но «1.6» и «1.7» работают.

  • Затем я попробовал другой подход (после того, как немного более Googling) и заменить

    source="1.5" 
    target="1.5" 
    

    с

    fork="yes" 
    executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java" 
    

    расположение Java 8 является допустимым, но запуск задачи компиляции в настоящее время результаты в

    compile: 
        [javac] Compiling 171 source files to /home/chris/d2rq/bldsrc 
        [javac] Unrecognized option: -d 
        [javac] Error: Could not create the Java Virtual Machine. 
        [javac] Error: A fatal exception has occurred. Program will exit. 
    

Я даже не знаю, является ли -d вариантом компиляции D2RQ или действительным флагом java.

Есть ли что-нибудь еще, что я должен попробовать ?!

ответ

1

Атрибут executable<javac> должен указывать на javac исполняемый файл, а не java. Обратите внимание на "c" в конце javac.

Следующая информация должна быть перенаправлена ​​на javac:

executable="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64/jre/bin/java" 

javac Где живет зависит от вашего дистрибутива Linux.

+0

Спасибо! Я знал, что это будет просто! (Можете ли вы сказать, что Java не является моим предпочтительным языком ...) – ChrisW

+0

Хотя, он по-прежнему не отвечает на мой вопрос о том, почему 'target =" 1.8 "' не работает, или почему ant 1.10 не жалуется на то, что запуск под Java 1.5 – ChrisW

+0

'target =" 1.8 "' не будет работать, если используется версия 1.7 или более старше исполняемого файла 'javac'. –