2010-07-08 51 views
2

我有两台具有不同JVM版本的机器(1.6和1.5)应该在部署JBOSS AS的相同JVM上编译ejb jar吗?

我有一个运行在JDK1.5上的JBOSS服务器。我在JDK1.6的机器上创建了一个ejb jar文件。

当我部署EJB JAR到JBOSS(4.3),我收到以下错误:

16:05:41,878 WARN [ServiceController] Problem creating service jboss.j2ee:service=EJB3,module=ejb1_test.jar 
java.lang.ClassNotFoundException: Unexpected error during load of: org.daz.TimeServiceBean, msg=Bad version number in .class file 
+0

可能重复[java - 编译文件时可以选择版本号吗?](http://stackoverflow.com/questions/3207537/java-is-it-possible-to-choose-version-number -when-compile-a-file) – 2010-07-08 23:29:47

回答

1

如果你想在Java 1.5中运行,那么你应该在Java 1.5编译或降低。

或者,如果您只需运行JDK 6,则@Paul Tomblin建议您可以使用-target javac选项。但是,如果您使用任何新的Java 1.6 API功能javac 1.6(例如setting File perms),javac将不会发出抱怨,但在java 1.5中运行此代码时会出现错误。

0

javac有一个-target选项,它允许您使用1.6编译器编译为1.5 jvm。详情请参阅javac -help

+0

是的,我用它。谢谢。 – 2010-07-09 01:12:47