我有一个Oracle 11g数据库。该DB随JVM 1.5一起提供。
我需要从SQL语句运行一个名为jasperstarter的程序。该程序是用Java编写的,我使用它的jar文件编译了jasper报告文件。当运行它时,我得到了以下异常:
java.lang.UnsupportedClassVersionError: de/cenote/jasperstarter/App (Unsupported major.minor version 50.0
Exception in thread "Root Thread" java.lang.UnsupportedClassVersionError: de/cenote/jasperstarter/App (Unsupported major.minor version 50.0)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$100(URLClassLoader.java:66)
at java.net.URLClassLoader$1.run(URLClassLoader.java)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java)
at java.lang.ClassLoader.loadClass(ClassLoader.java)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java)
at java.lang.ClassLoader.loadClass(ClassLoader.java)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java)
at oracle.aurora.vm.OracleRuntime$1.run(OracleRuntime.java:826)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.aurora.vm.OracleRuntime.classAndMethodForRunJava(OracleRuntime.java:800)我的JVM版本似乎太旧,无法运行jasperstarter。有没有办法升级它或将另一个JVM添加到数据库中?
发布于 2015-09-21 04:03:38
打开JAR中的任何类文件,查看字节偏移量4到7。这些字节为您提供了编译类时所针对的java版本。如果它是用于JAVA的,那么您需要Java6/7JRE来运行它。
http://en.wikipedia.org/wiki/Java_class_file
任何十六进制编辑器都可以帮助您在类文件中查看这些字节
发布于 2015-09-21 16:19:06
除了升级到12c之外,没有办法做到这一点。Oracle数据库的JVM稍有不同。例如,它的GC也会杀死被丢弃的线程。这个JVM是不能被其他JVM替代的。
https://stackoverflow.com/questions/32679758
复制相似问题