CA Gen 8.6 Java Proxy build fails with "Could not find the main class: org.apache.tools.ant.Main"
search cancel

CA Gen 8.6 Java Proxy build fails with "Could not find the main class: org.apache.tools.ant.Main"

book

Article ID: 144729

calendar_today

Updated On:

Products

Gen

Issue/Introduction

Under CA Gen 8.6 Complete (PTF level WKS86200) building Gen 8.6 sample model Java Proxy for server P900 fails and the output file shows:
===
Details of P900 Load Module Script Results:
CLASSPATH=C:\models86\sample.ief\proxy\java\\src;C:\Program Files (x86)\CA\Gen86\gen\classes\csu.jar;C:\Program Files (x86)\CA\Gen86\gen\classes\vwrt.jar;C:\Program Files (x86)\CA\Gen86\gen\classes\odc.jar;C:\Program Files (x86)\CA\Gen86\gen\classes\jprt.jar;C:\Program Files (x86)\CA\Gen86\gen\classes\jprt.xml.jar;C:\Program Files (x86)\CA\Gen86\gen\bt\bt.jar;c:\java\lib\tools.jar;.;C:\PROGRA~2\IBM\IBMDAT~1\java\db2jcc.jar;C:\PROGRA~2\IBM\IBMDAT~1\java\sqlj.zip;C:\PROGRA~2\IBM\IBMDAT~1\bin
Exception in thread "main" java.lang.ClassFormatError: JVMCFRE067 unknown constant pool entry tag; class=org/apache/tools/ant/Main, offset=66
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:275)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:540)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:451)
at java.net.URLClassLoader.access$300(URLClassLoader.java:79)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1038)
at java.security.AccessController.doPrivileged(AccessController.java:284)
at java.net.URLClassLoader.findClass(URLClassLoader.java:429)
at java.lang.ClassLoader.loadClass(ClassLoader.java:653)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
Could not find the main class: org.apache.tools.ant.Main. Program will exit.
IEFSIGNAL:FAIL
*** Build for Load Module P900 Failed. ***
Important! Review above for any errors.
===

Cause

The class org.apache.tools.ant.Main is provided in the Gen Build Tool jar file "C:\Program Files (x86)\CA\Gen86\gen\bt\bt.jar".

The version of java being used via BuildTool Java token LOC.JDK_HOME (=c:\java) is IBM JRE version 1.6 i.e.
C:\>c:\java\bin\java.exe -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pwi3260sr9fp1ifix-20110401_01(SR9 FP1+IZ95392+IZ95393+IZ97453))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows Vista x86-32 jvmwi3260sr9-20110216_75791 (JIT enabled, AOT enabled)
J9VM - 20110216_075791
JIT  - r9_20101028_17488ifx4
GC   - 20101027_AA)
JCL  - 20110401_02

Support created a similar error using the Oracle SE JDK 1.6 i.e.
===
java.lang.UnsupportedClassVersionError: org/apache/tools/ant/Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.tools.ant.Main.  Program will exit.
===

Java 6 is version 50 and Java 8 is version 52 (https://en.wikipedia.org/wiki/Java_class_file#General_layout)
Java 6 cannot load Java 8 compiled classes.
The class files in bt.jar have been compiled with Java 8 and only Java JDK versions 8 and 11 are supported with CA Gen 8.6 Complete:
CA GEN 8.6 > Technical Requirements > Third-Party Software Version (see Compilers)

Resolution

Upgrade the Java JDK to 1.8 and change Build Tool token LOC.JDK_HOME to that install location.

Additional Information

From CA Gen Community post:
Gen 8.6 Complete Release and Java Proxy Build