Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

javac1.8 class not found

I have installed two jdks - jdk 1.5 and jdk 1.8. I have following Ant build.xml config file :

<target name="compileCustomSrc">
    <javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
        <classpath>
            <fileset dir="C:/lib/">
                <include name="*.jar" />
            </fileset>
        </classpath>
    </javac>
</target>

Before installing jdk1.8, Ant invoked from Eclipse compiled all sources successful. But now, I have following error message:

Class not found: javac1.8

My JAVA_HOME and JRE_HOME:

JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

and set in Eclipse JRE to 1.5. Does Java 1.8 set some configs during installation?

like image 902
kamilz Avatar asked Dec 20 '13 11:12

kamilz


7 Answers

Class not found: javac1.8

This error is known to happen with Apache Ant versions less than 1.9.0 - which aren't compatible with Java 8. If you're using a version of Ant < 1.9.0, you should update to a 1.9.x release.

Here is the related bug report: https://issues.apache.org/bugzilla/show_bug.cgi?id=53347

Btw, if you just want to compile with Java 8, but don't need to compile any actual Java 8 syntax, then you can pass the following argument to javac as a workaround, which would allow you to continue using an older version of Ant:

-Dbuild.compiler=javac1.7
like image 154
Kristian Holdhus Avatar answered Oct 20 '22 01:10

Kristian Holdhus


As a follow-on to Kristian Holdhus's answer (marked as correct), you can instead use the compiler attribute on the Ant javac task. Setting compiler="modern" should be both backward (as far back as 1.3) and forward compatible.

This avoids the need to set the Java System property named build.compiler. Only in the absence of explicitly setting the compiler attribute on the javac task, will Ant use the value of the build.compiler as a fallback.

like image 35
Chuck Daniels Avatar answered Oct 20 '22 03:10

Chuck Daniels


I had this same issue. I had JAVA_HOME and JRE_HOME set correctly. I also had Ant > 1.9.

What I did to fix it is go into Eclipse to Window -> Preferences. Expand Ant and select Runtime. By default the Classpath tab should be selected and on the right hand side there is a button called "Ant Home". Click this button and double check it is pointed to your Ant folder.

like image 26
Mike Kuenzi Avatar answered Oct 20 '22 01:10

Mike Kuenzi


JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

Your JAVA_HOME and JRE_HOME are set to the Java 1.5 installation hence 1.8 binaries (like javac) are not found. Set them to the Java 1.8 installation and you should be fine.

like image 42
Toni Toni Chopper Avatar answered Oct 20 '22 01:10

Toni Toni Chopper


I tried it with Eclise and got the same error Class not found: javac1.8

I verified the ANT version on my system

>ant -version

Apache Ant(TM) version 1.9.6 compiled on June 29 2015

When I tried to run the build.xml from the command prompt, it worked. Then I checked that in the Eclipse, it was referring to the older version of the ANT.

I simply edited the ANT HOME path in the Eclipse and it worked from here also. :)

Below is the image from where need to edit the ANT Path in the Eclipse.

  1. Right click on the build.xml file
  2. Run as
  3. External tool configurations
  4. Select the classpath tab

Now change the ANT Home path from here.

enter image description here

like image 42
KulDeep Avatar answered Oct 20 '22 02:10

KulDeep


Update Ant to 1.9.x release as Java 8 in incompatible with Ant versions less tha 1.9

like image 27
Neha Priya Avatar answered Oct 20 '22 02:10

Neha Priya


I tried all of the other solutions, but none worked. I finally found an approach that worked for me in Eclipse, follow these steps:

  1. Right click on the ant task name, e.g. `myBuild.xml in the ant window.

  2. Choose Run As | External Tool Configurations.

  3. Then on the JRE tab, choose Separate JRE: Java JDK7 or whatever your java 7 is named.

  4. Hit Apply and then Run.

Your ant task will be executed, and will build correctly!

like image 44
manchaw Avatar answered Oct 20 '22 02:10

manchaw