Java 如何通过使用WebSphere7将环境限制为JDK1.5来发动战争?

Java 如何通过使用WebSphere7将环境限制为JDK1.5来发动战争?,java,deployment,websphere,war,websphere-7,Java,Deployment,Websphere,War,Websphere 7,我想知道是否有可能发动一场必须使用JDK1.5(不符合JDK1.6)运行的战争在Webpshere 7下。不可能/不支持使用与产品捆绑的JDK以外的任何其他JDK运行WebSphere Application Server 7.0进程。不可能/不支持使用与产品捆绑的JDK以外的任何其他JDK运行WebSphere Application Server 7.0进程。我想我对这一点感到困惑你的问题。JRE应向后兼容。因此,IBMWebSphereApplicationServerV7.x.x.x中的

我想知道是否有可能发动一场必须使用JDK1.5(不符合JDK1.6)运行的战争在Webpshere 7下。

不可能/不支持使用与产品捆绑的JDK以外的任何其他JDK运行WebSphere Application Server 7.0进程。

不可能/不支持使用与产品捆绑的JDK以外的任何其他JDK运行WebSphere Application Server 7.0进程。

我想我对这一点感到困惑你的问题。JRE应向后兼容。因此,IBMWebSphereApplicationServerV7.x.x.x中的1.6JRE将运行JavaEE代码,最早可以追溯到JavaEE1(我认为它可能与Java1.2兼容),并且应该支持JavaSE代码,最早可以追溯到1.1。(我不确定你为什么要走那么远的路……)

这真的没有什么麻烦。只需使用1.5JDK编译代码(我们就是这么做的),或者如果需要,可以使用1.6编译器编译代码,并将编译器标记为使用1.5

您的代码不必符合1.6。它只需符合1.5标准,就能正常运行。这就是抽象和向后兼容JDK和JRE的全部要点

举个例子,我们有一个企业应用程序,我们使用Sun/Oracle的1.5JDK使用Maven 2编译。我们打包了几个开源项目JAR,其中一些甚至与1.3兼容和/或编译的JAR一样旧

我们使用Maven 2将所有这些打包为一个EAR,并将其部署到IBM的WebSphere Application Server(我们运行7.0.0.9)。我们的代码运行得很好。我们甚至用JDK1.6编译了一些模块,以利用JDK1.6中的某些函数,但大多数代码都编译为1.5。而且运行良好


所以我想我不明白你在问什么。你能提供一个更具体的例子来说明你想做什么吗?因为根据您告诉我的,您应该能够在WAS7中运行良好,而无需在JDK 6上编译。

我想我被您的问题弄糊涂了。JRE应向后兼容。因此,IBMWebSphereApplicationServerV7.x.x.x中的1.6JRE将运行JavaEE代码,最早可以追溯到JavaEE1(我认为它可能与Java1.2兼容),并且应该支持JavaSE代码,最早可以追溯到1.1。(我不确定你为什么要走那么远的路……)

这真的没有什么麻烦。只需使用1.5JDK编译代码(我们就是这么做的),或者如果需要,可以使用1.6编译器编译代码,并将编译器标记为使用1.5

您的代码不必符合1.6。它只需符合1.5标准,就能正常运行。这就是抽象和向后兼容JDK和JRE的全部要点

举个例子,我们有一个企业应用程序,我们使用Sun/Oracle的1.5JDK使用Maven 2编译。我们打包了几个开源项目JAR,其中一些甚至与1.3兼容和/或编译的JAR一样旧

我们使用Maven 2将所有这些打包为一个EAR,并将其部署到IBM的WebSphere Application Server(我们运行7.0.0.9)。我们的代码运行得很好。我们甚至用JDK1.6编译了一些模块,以利用JDK1.6中的某些函数,但大多数代码都编译为1.5。而且运行良好


所以我想我不明白你在问什么。你能提供一个更具体的例子来说明你想做什么吗?因为根据您告诉我的,您应该能够在WAS 7中正常运行,而无需在JDK 6上编译。

您能解释一下如何创建在java 1.5下工作且不符合1.6的代码吗?据我所知,java是向后兼容的。是的,我知道它通常是兼容的,但war基于一个复杂的自制框架,在独立模式下,当我们将目标版本指定为1.5时,我们可以在JDK 1.6下运行应用程序。但目前我们别无选择,我们必须找到一种在WS7上运行应用程序的方法。当然,没有人知道WS是如何工作的:)。你知道,钱,合同,广告…再一次,找到什么特别需要你自制的框架?如果它检查java版本,则调用System.setProperty()并传递模拟版本。还有什么?啊,是的,为什么不呢,但是如果我从System.setProperty()更改模拟版本,它将用于所有部署的应用程序,或者只用于调用该方法的战争。具体来说,它来自jdk 1.5中编译的嵌入式jar,而WS为jdk 1.6提供了它,jmx-remote.jar就是这样,我删除的jmx-ri.jar。但我知道还会有其他的问题。你能解释一下如何创建在Java1.5下工作而不符合1.6的代码吗?据我所知,java是向后兼容的。是的,我知道它通常是兼容的,但war基于一个复杂的自制框架,在独立模式下,当我们将目标版本指定为1.5时,我们可以在JDK 1.6下运行应用程序。但目前我们别无选择,我们必须找到一种在WS7上运行应用程序的方法。当然,没有人知道WS是如何工作的:)。你知道,钱,合同,广告…再一次,找到什么特别需要你自制的框架?如果它检查java版本,则调用System.setProperty()并传递模拟版本。还有什么?啊,是的,为什么不呢,但是如果我从System.setProperty()更改模拟版本,它将用于所有部署的应用程序,或者只用于调用该方法的战争。具体来说,它来自jdk 1.5中编译的嵌入式jar,而WS为jdk 1.6提供了它,jmx-remote.jar就是这样,我删除的jmx-ri.jar。但是我知道还会有其他问题。关于向后兼容,我们在JDBC(rt.jar中的java.sql)中遇到了问题。我们的应用程序使用java.sql中的类定义数据源,但在JDK1.5和JDK1.6之间,接口的签名是不同的(您可以看到java.s类)