public class SimpleJava {
public void showMessage() {
System.out.println("Here we are");
}
}
Ran into this small little problem when compiling java to use in an Oracle procedure.
ORA-29516: Aurora assertion failure: Assertion failure at eox.c:359 Uncaught exception System error: java/lang/UnsupportedClassVersionError
I could understand that I had somehow compiled the class using an incorrect version but seeing as I had done this from the server I thought I would have been OK. A bit of digging and I came up with the following:
Find the version the class was actually compiled in:
javap -verbose SimpleJava
This gave the following output along with some other info:
public class SimpleJava extends java.lang.ObjectSourceFile: "SimpleJava.java"
minor version: 0
major version: 50
Table of versions:
major minor Java platform version
45 3 1.0
45 3 1.1
46 0 1.2
47 0 1.3
48 0 1.4
49 0 1.5
50 0 1.6
Using the above table I could see that I had compiled it with 1.6. But how had this happened as I had used the server to compile the java file? Well I had missed a crutial point, the database and application aren't on the same server and in this case the database server is running an eariler Java version. I checked it using this:
java -version
Output:
java version "1.4.2"
So my problem was that I was compiling on the Application server using a higher version than the one on the database. Solution:
javac -source 1.4 -target 1.4 SimpleJava.java
Using just the -target 1.4 did not solve the problem completely.
Source
im getting error while compiling java code which have servelet packages.
ReplyDeletethe some errors are package javax.servlet does not exist
im using tomcat.i hav set the classpath for servelet-api.jar file.still getting the errors.
can u help me rectify the errors