Подтвердить что ты не робот

Ant: класс не найден: javac1.8

Я пытаюсь создать проект с помощью Ant в eclipse. Я щелкнул правой кнопкой мыши по build.xml > Run As > Ant Build. Однако я получаю следующую ошибку:

BUILD FAILED
C:\Users\David\eclipse\test-project\build.xml:26: Class not found: javac1.8

а также предупреждение:

compile:
[javac] C:\Users\David\eclipse\test-project\build.xml:26: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

Как я читал в других сообщениях, это может быть связано с тем, что версия Ant, которая слишком старая или не правильно установила переменные среды здесь, - это вся информация:

C:\>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

C:\>ant -version
Apache Ant(TM) version 1.9.3 compiled on December 23 2013

C:\>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_05

C:\>echo %JRE_HOME%
C:\Program Files\Java\jre8

EDIT: Вот весь build.xml, строка 26 - это тег javac:

<?xml version="1.0"?>
<project name="test-project" default="main" basedir=".">
  <!-- Sets variables which can later be used. -->
  <!-- The value of a property is accessed via ${} -->
  <property name="src.dir" location="src" />
  <property name="build.dir" location="bin" />
  <property name="dist.dir" location="dist" />
  <property name="docs.dir" location="docs" />

  <!-- Deletes the existing build, docs and dist directory-->
  <target name="clean">
    <delete dir="${build.dir}" />
    <delete dir="${docs.dir}" />
    <delete dir="${dist.dir}" />
  </target>

  <!-- Creates the  build, docs and dist directory-->
  <target name="makedir">
    <mkdir dir="${build.dir}" />
    <mkdir dir="${docs.dir}" />
    <mkdir dir="${dist.dir}" />
  </target>

  <!-- Compiles the java code (including the usage of library for JUnit -->
  <target name="compile" depends="clean, makedir">
    <javac srcdir="${src.dir}" destdir="${build.dir}">
    </javac>
  </target>

  <!-- Creates Javadoc -->
  <target name="docs" depends="compile">
    <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
      <!-- Define which files / directory should get included, we include all -->
       <fileset dir="${src.dir}">
                <include name="**" />
           </fileset>
    </javadoc>
  </target>

  <!--Creates the deployable jar file  -->
  <target name="jar" depends="compile">
    <jar destfile="${dist.dir}\test-project1.jar" basedir="${build.dir}">
      <manifest>
        <attribute name="Main-Class" value="test.Main" />
      </manifest>
    </jar>
  </target>

  <target name="main" depends="compile, jar, docs">
    <description>Main target</description>
  </target>

</project> 
4b9b3361

Ответ 1

Версия Ant в комплекте с вашей версией Eclipse не совместима с Java 1.8.

Перейдите на страницу Ant download и извлеките последнюю версию где-нибудь в вашей файловой системе.

В Eclipse перейдите к Window > Preferences > Ant > Runtime, нажмите кнопку Ant Home... и выберите местоположение, в котором вы извлекли недавно загруженный Ant в.

Ответ 2

Чтобы сделать это еще более понятным.

1 > Задайте JAVA_HOME, JRE_HOME и Update Ant до 1.9

2 > Над build.xml right click = > запустится как (это относится к конфигурации) == > Теперь во всплывающем окне редактирования конфигурации и запуска

выберите "Главная вкладка", а затем третье поле формы "Аргументы" добавить:

-Dbuild.compiler=javac1.7

3 > В build.xml add includeantruntime = "false"

<javac srcdir="${src}" destdir="${bin}" debug="true" encoding="ISO-8859-1" includeantruntime="false">
        <classpath refid="my.classpath"/>
</javac>

Edit configuration

Он должен компилироваться без какого-либо сообщения

Ответ 3

г. studro прав. Я только что подтвердил пример Ubuntu 14.04

sudo apt-get install ant
ant -version
Apache Ant (TM) Version 1.9.3 compiled on April August 2014

отлично работает в eclipse, просто выполните шаги, описанные г-ном studro, чтобы настроить "Ant Home" в eclipse на "/usr/share/ ant".
С уважением, Стефан.

Ответ 4

Убедитесь, что исходные файлы находятся в "ProjectDirectory/src".

Ответ 5

Я думаю, что вы видите Ant Bug 53347 (см. https://issues.apache.org/bugzilla/show_bug.cgi?id=53347).

Если да, попробуйте либо pf следующие обходные пути:

Задайте свойство "build.compiler" для значимого значения типа "javac1.7" или "javac1.3".

Установите атрибут "компилятор" элемента "javac" вашей сборки script для любого из указанных выше значений. Для всех возможных значений и их значения см. http://ant.apache.org/manual/Tasks/javac.html

Ответ 6

Я уже делал некоторые обширные поисковые запросы, прежде чем задавать этот вопрос, но продолжая, что я нашел решение здесь: Эта проблема возникает только при использовании JDK 1.8, поэтому использование JDK 1.7 вместо этого решает проблему. Следующая строка должна быть добавлена ​​в eclipse.ini:

-vm "path-to-jdk-1.7\bin\javaw.exe"