Попытка скомпилировать с муравьем - PullRequest
4 голосов
/ 23 ноября 2011

Я пытаюсь скомпилировать свой проект с помощью "ant build", но я получаю эту ошибку:

Невозможно найти tools.jar. Ожидается найти его в /usr/lib/jvm/java-6-openjdk/lib/tools.jar

Я искал tools.jar, и это только в /usr/lib/jdk1.7.0_01/lib/tools.jar.

Является ли хорошей идеей создать символическую ссылку, подобную приведенной ниже?

ln -s /usr/lib/jdk1.7.0_01/lib/tools.jar /usr/lib/jdk1.7.0_01/lib/tools.jar

Хорошо .. На самом деле я пытался создать эту символическую ссылку, но затем я получаю эту ошибку:

BUILD FAILED /home/me/code/StockWatcher/build.xml:29: java.lang.UnsupportedClassVersionError: com / sun / tools / javac / Main: Неподдерживаемая версия major.minor 51.0

Так что я не знаю, была ли эта последняя ошибка из-за символической ссылки ...

1027 * Javi *

Ответы [ 3 ]

2 голосов
/ 23 ноября 2011

Нет необходимости создавать символическую ссылку (смешивать два JDK)

Ant использует ту же версию Java, которая использовалась для запуска самого Ant.Если вы хотите использовать Java 1.7, вы должны указать Ant.Из документации javac Задание:

Можно использовать разные компиляторы.Это можно указать либо установив глобальное свойство build.compiler, которое повлияет на все задачи во время сборки, либо установив атрибут компилятора, специфичный для текущей задачи, либо используя вложенный элемент любого типа typedeffed или componentdeffed, который реализует org.apache.tools.ant.taskdefs.compilers.CompilerAdapter.Допустимые значения для свойства build.compiler или атрибута компилятора:

  • classic (стандартный компилятор JDK 1.1 / 1.2) - javac1.1 и javac1.2 можно использовать в качестве псевдонимов.
  • modern (стандартный компилятор JDK 1.3 / 1.4 / 1.5 / 1.6 / 1.7) - javac1.3 и javac1.4 и javac1.5 и javac1.6 и javac1.7 (начиная с Ant 1.8.2)могут быть использованы в качестве псевдонимов.jikes (компилятор
  • Jikes).
  • jvc (компилятор командной строки из SDK Microsoft для Java / Visual J ++) - в качестве псевдонима можно использовать Microsoft.
  • kjc (компилятор kopi).
  • gcj (компилятор gcj из gcc).
  • sj (компилятор Java Symantec) - в качестве псевдонима можно использовать symantec.extJavac (запускать современную или классическую версию в своей собственной JVM).

Если вы хотите использовать ту же версию Java, что и Ant, убедитесь, что вы установили ее правильно (и что вы установили)JDK и не только JRE)

1 голос
/ 23 ноября 2011

У вас есть разница в ссылках на JVM. Создать символическую ссылку из одной версии в другую - это на самом деле плохая идея, потому что вы нарушаете совместимость версий. Если ваш муравей использует некоторые свойства, как вы сказали /usr/lib/jvm/java-6-openjdk/lib/tools.jar, лучше найти файл с этими свойствами и изменить его на ваше реальное местоположение.

0 голосов
/ 23 ноября 2011

Каково значение вашей JAVA_HOME переменной среды? Я считаю, что именно на это смотрит Ant, чтобы определить, где живет JVM.

Следовательно, если вы установите для этой переменной среды значение /usr/lib/jdk1.7.0_01, это, вероятно, решит вашу проблему.

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