能否在同一台 Windows 服务器上使用 Java 1.4.2_12 和 Java 1.5 运行应用程序?

3

我有几个应用程序正在运行Java 1.4.2_12,现在需要添加一个使用Java 1.5的新应用程序。我能在Windows服务器上同时安装两个版本的Java吗?

可以在Windows服务器上同时安装多个版本的Java。只需确保每个版本都被正确配置和管理即可。您可以在系统环境变量中设置JAVA_HOME来指定要使用的Java版本。

5个回答

5
是的。您只需要确保每个计算机的CLASSPATH、PATH和JAVA_HOME环境变量中都有正确版本的Java/JRE即可。

3

实际上,JDK或JRE可以被“复制”到任何您想要的地方,而不是“安装”(避免将任何内容放入c:\ Windows \ System32)。

我还建议不要使用全局环境变量。

这样,您的应用程序完全依赖于本地设置(对应用程序的本地设置),而不依赖于外部Java安装的副作用。


JRE在Windows系统上确实使用了一些注册表值,因此除非您将其嵌入应用程序中,否则仅简单复制它是个不好的主意。 - Eddie
@Eddie:我不确定我是否理解你的意思:我每天使用两个不同的JRE副本(一个旧的1.4,一个6),没有嵌入任何问题... - VonC
@Eddie:如果在调用java.exe之前设置环境变量,您可以忽略注册表项。复制Java安装程序是完全安全的;您甚至可以将其复制到没有注册表项的计算机上,它也可以正常工作。 - Aaron Digulla

2

你确定必须使用特定的Java VM来运行Java 1.4.2_12应用程序吗?大多数应用程序应该可以在更新的VM中正常运行,因此您可能只需让它们全部使用1.5。

如果确实需要使用特定的VM版本,则可以执行其他帖子中建议的操作。


没错,使用Java 1.4编译的代码在1.5下也能正常运行。因此你可以直接在Java 1.5甚至1.6下运行所有代码。 - Steve Kuo
是的,我的另一个应用程序指出它们不适用于较新版本的JDK,因此供应商将不支持这些应用程序。 - veronique

1

是的。请参见上文。当然,运行两个虚拟机(任何版本)需要两倍的内存。


0

我可以建议您使用Java WebStart,它允许您在JNLP文件中指定目标J2SE版本。或者,通过绝对路径始终执行“Program Files”下的正确版本“java.exe”。

您不必为JRE设置CLASSPATH(现代JRE不应该这样做)。 JRE会自动拥有自己的引导类路径。 CLASSPATH由您的应用程序使用。

通常情况下,您不需要设置JAVA_HOME,除非您的应用程序正在从JDK \ lib \(例如包含编译器的tools.jar)中查找资源。

但我不确定您的问题是什么。 您是否正在运行客户端应用程序(swing)?提供服务的两个Java进程?还是两个应用程序共享同一个Java应用程序服务器?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接