web-dev-qa-db-ja.com

Ant:クラスが見つかりません:javac1.8

EclipseでAntを使用してプロジェクトをビルドしようとしています。 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

編集:これは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> 
26
David_Z

EclipseのバージョンにバンドルされているAntのバージョンは、Java 1.8と互換性がありません。

Antダウンロードページ に移動し、ファイルシステムの適切な場所に最新バージョンを抽出します。

Eclipseで、Window > Preferences > Ant > Runtime、 クリック Ant Home...ボタンをクリックし、新しくダウンロードしたAntを抽出した場所を選択します。

31
studro

さらに明確にするため。

1> Java_HOME、JRE_HOMEを設定し、Antを1.9に更新します

2> over build.xmlを右クリック=>として実行(これにより構成が行われます)==>この構成の編集およびポップアップウィンドウの起動

[メイン]タブを選択し、[引数]という3番目のフォームフィールドを追加します。

-Dbuild.compiler=javac1.7

3> build.xmlにincludeantruntime = "false"を追加します

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

Edit configuration

メッセージなしでコンパイルする必要があります

6
vimal krishna

あなたが見ているのはAnt Bug 53347だと思います( https://issues.Apache.org/bugzilla/show_bug.cgi?id=53347 を参照)。

その場合は、次の回避策のいずれかを試してください。

プロパティ「build.compiler」を「javac1.7」や「javac1.3」などの意味のある値に設定します。

ビルドスクリプトの「javac」要素の「compiler」属性を上記の値のいずれかに設定します。可能なすべての値とその意味については、 http://ant.Apache.org/manual/Tasks/javac.html を参照してください

1
user1774051

シュドロ氏は正しい。 Ubuntu 14.04で例を確認しました

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

eclipseで完全に機能します。stdrro氏が説明した手順に従って、「/ usr/share/ant」でEclipseの「Ant Home」を設定します。
よろしく、ステファン。

1
smillien62

ソースファイルが「ProjectDirectory/src」にあることを確認します。

0
kasi