用Java1.6.045编译的jar会在Java1.6.0环境中运行吗?

用Java1.6.045编译的jar会在Java1.6.0环境中运行吗?,java,jar,Java,Jar,我有一个用java 1.6.045编译的jar,但是当我尝试在一台有java 1.6.0的AIX机器上运行它时,它会给我以下异常: 2016-08-12 15:32:39,179 WARN o.s.b.SpringApplication [main] Error handling failed (no error message) 2016-08-12 15:32:39,197 INFO o.h.v.i.u.Version [background-preinit] HV000001: Hiber

我有一个用java 1.6.045编译的jar,但是当我尝试在一台有java 1.6.0的AIX机器上运行它时,它会给我以下异常:

2016-08-12 15:32:39,179 WARN o.s.b.SpringApplication [main] Error handling failed (no error message)
2016-08-12 15:32:39,197 INFO o.h.v.i.u.Version [background-preinit] HV000001: Hibernate Validator 5.2.4.Final
2016-08-12 15:32:39,249 ERROR o.s.b.SpringApplication [main] Application startup failed
java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=javax/annotation/ManagedBean, offset=6
    at java.lang.ClassLoader.defineClass(ClassLoader.java:275) ~[?:1.6.0]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69) ~[?:?]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:529) ~[?:1.6.0]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:440) ~[?:1.6.0]
    at java.net.URLClassLoader.access$300(URLClassLoader.java:68) ~[?:1.6.0]
    at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1027) ~[?:1.6.0]
    at java.security.AccessController.doPrivileged(AccessController.java:284) ~[?:?]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:418) ~[?:1.6.0]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:660) ~[?:1.6.0]
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:89) ~[DiamondFeedGeneratorCMTTool-1.0.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626) ~[?:1.6.0]
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:250) ~[spring-core-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:243) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.<init>(ClassPathScanningCandidateComponentProvider.java:116) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.<init>(ClassPathBeanDefinitionScanner.java:136) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.<init>(ClassPathBeanDefinitionScanner.java:111) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.<init>(ClassPathBeanDefinitionScanner.java:83) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:62) ~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at java.lang.J9VMInternals.newInstanceImpl(Native Method) ~[?:1.6.0]
    at java.lang.Class.newInstance(Class.java:1345) ~[?:1.6.0]
    at org.springframework.beans.BeanUtils.instantiate(BeanUtils.java:77) ~[spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.boot.SpringApplication.createApplicationContext(SpringApplication.java:595) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at com.td.diamond.cmt.feed.generator.config.DiamondFeedGeneratorConfig.main(DiamondFeedGeneratorConfig.java:44) [classes!/:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.6.0]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) ~[?:1.6.0]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[?:1.6.0]
    at java.lang.reflect.Method.invoke(Method.java:600) ~[?:1.6.0]
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [DiamondFeedGeneratorCMTTool-1.0.jar:?]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [DiamondFeedGeneratorCMTTool-1.0.jar:?]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [DiamondFeedGeneratorCMTTool-1.0.jar:?]
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58) [DiamondFeedGeneratorCMTTool-1.0.jar:?]
2016-08-12 15:32:39179警告o.s.b.SpringApplication[main]错误处理失败(无错误消息)
2016-08-12 15:32:39197信息o.h.v.i.u.版本[background preinit]HV000001:Hibernate Validator 5.2.4.Final
2016-08-12 15:32:39249错误o.s.b.SpringApplication[main]应用程序启动失败
java.lang.UnsupportedClassVersionError:JVMCFRE003错误的主要版本;class=javax/annotation/ManagedBean,偏移量=6
在java.lang.ClassLoader.defineClass(ClassLoader.java:275)~[?:1.6.0]
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)~[?:?]
在java.net.URLClassLoader.defineClass(URLClassLoader.java:529)~[?:1.6.0]
在java.net.URLClassLoader.defineClass(URLClassLoader.java:440)~[?:1.6.0]
在java.net.URLClassLoader.access$300(URLClassLoader.java:68)~[?:1.6.0]
在java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1027)~[?:1.6.0]
在java.security.AccessController.doPrivileged(AccessController.java:284)~[?:?]
在java.net.URLClassLoader.findClass(URLClassLoader.java:418)~[?:1.6.0]
在java.lang.ClassLoader.loadClass(ClassLoader.java:660)~[?:1.6.0]
在org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:89)~[DiamondFeedGeneratorCMTTool-1.0.jar:?]
在java.lang.ClassLoader.loadClass(ClassLoader.java:626)~[?:1.6.0]
在org.springframework.util.ClassUtils.forName(ClassUtils.java:250)~[spring-core-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:243)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
位于org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.(ClassPathScanningCandidateComponentProvider.java:116)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.context.annotation.ClassPathBeanDefinitionScanner.(ClassPathBeanDefinitionScanner.java:136)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.context.annotation.ClassPathBeanDefinitionScanner.(ClassPathBeanDefinitionScanner.java:111)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.context.annotation.ClassPathBeanDefinitionScanner.(ClassPathBeanDefinitionScanner.java:83)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.context.annotation.AnnotationConfigApplicationContext.(AnnotationConfigApplicationContext.java:62)~[spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在java.lang.J9VMInternals.newInstanceImpl(本机方法)~[?:1.6.0]
在java.lang.Class.newInstance(Class.java:1345)~[?:1.6.0]
在org.springframework.beans.BeanUtils.instantiate(BeanUtils.java:77)~[spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
在org.springframework.boot.SpringApplication.createApplicationContext(SpringApplication.java:595)[spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:310)[spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)[spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)[spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
在com.td.diamond.cmt.feed.generator.config.DiamondFeedGeneratorConfig.main(DiamondFeedGeneratorConfig.java:44)[classes!/:?]
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.6.0]
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)~[?:1.6.0]
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)~[?:1.6.0]
在java.lang.reflect.Method.invoke(Method.java:600)~[?:1.6.0]
在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)[DiamondFeedGeneratorCMTTool-1.0.jar:?]
在org.springframework.boot.loader.Launcher.launch(Launcher.java:87)[DiamondFeedGeneratorCMTTool-1.0.jar:?]
在org.springframework.boot.loader.Launcher.launch(Launcher.java:50)[DiamondFeedGeneratorCMTTool-1.0.jar:?]
位于org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)[DiamondFeedGeneratorCMTTool-1.0.jar:?]

有什么建议可以解决这个问题吗?

这是一个spring启动应用程序,但在您的类路径(例如war的lib目录)中存在一个Java EE API jar(或)。它不包含注释ManagedBean的实现,因此会抛出错误


通常,这种类型的库仅用于编译部署在服务器上实现这些规范的应用程序(Servlet或Java EE)。

您是否有机会打包Java EE api jar?您有任何代码吗?@Nicolas这是一个spring boot web应用程序。@Vinet我理解。
javax.annotation.ManagedBean
类来自哪里(哪个jar)?正如我所读到的,stacktrace ManagedBean必须是用Java 7或更高版本编译的。@vinet the javax.annotation.Ma‌​已经为目标1.6编译了来自tomcat-embed-core-7.0.59.jar的nagedBean。我会检查你没有第二次化身j.a.Ma‌​nagedBean位于为target>1.6编译的类路径上。您可能希望进一步澄清,他包含了这些库的存根“仅用于编译”版本,这些版本在运行时无法工作。