首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jdk6调用jdk 7编译类

从jdk6调用jdk 7编译类
EN

Stack Overflow用户
提问于 2013-09-25 13:28:29
回答 3查看 1.2K关注 0票数 0

我拥有使用jdk7编译的am类,并且我试图使用JDK6调用,类路径中的jars是使用jdk 6编译的。

代码语言:javascript
复制
jdk6/bin/java com.test.myclass -classpath abc.jar xyz.jar pqr.jar MNO.jar

我的类com.test.myclassMNO.jar中,abc.jar xyz.jar pqr.jar是用jdk6编译的

对于jdk7,它可以工作。

代码语言:javascript
复制
jdk7/bin/java com.test.myclass -classpath abc.jar xyz.jar pqr.jar MNO.jar

这也是fails.Any输入来解决这个问题。?

代码语言:javascript
复制
Exception in thread "Main Thread" java.lang.UnsupportedClassVersionError: com/test/MyClass: unsupported classversion 51.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.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.test.MyClass.  Program will exit.
256

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-25 13:29:30

在编译源代码时,给出参数-target 1.6。这样就会生成1.6兼容的字节码(即类文件表示它们需要1.6或更高版本才能运行)。

票数 4
EN

Stack Overflow用户

发布于 2013-09-25 14:04:48

最后,您可以使用十六进制编辑器将.class文件的类版本从33更改为32 (从文件开始的7字节)。如果该类不使用任何Java 7新特性,它将正常工作。

票数 2
EN

Stack Overflow用户

发布于 2013-09-25 13:40:55

如果您在类中使用了任何特定于jdk 7的代码,那么它将无法工作,否则它就会工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19006288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档