在 Windows 下同时运行的多个 Java 版本

2022-08-31 10:18:53

我们有几个应用程序在Java 5上运行,现在希望引入一个基于Java 6的应用程序。两个Java版本可以在Windows下共存吗?

是否有任何控制面板可以为不同的应用程序设置适当的Java版本,或者任何其他方法来设置将使用哪个版本的Java来运行该特定应用程序?


答案 1

当然,您可以在Windows下使用多个版本的Java。不同的应用程序可以使用不同的Java版本。您的申请是如何开始的?通常你会有一个批处理文件,其中有类似的东西

java ...

这将使用 PATH 变量搜索 Java 可执行文件。因此,如果 Java 5 首先出现在 PATH 上,则在运行 Java 6 应用程序时会遇到问题。然后,您应该修改批处理文件以使用某个Java版本,例如,通过定义具有该值的环境变量(如果Java 6安装在此目录中)并更改批处理文件调用JAVA6HOMEC:\java\java6

%JAVA6HOME%\bin\java ...

答案 2

我对Windows中CLASSPATH,JAVA_HOME和PATH想法的笨拙感到震惊,以跟踪Java文件。我来到这里,是因为有多个JRE,以及如何满足于它。在不反刍信息的情况下,从一个比我聪明得多的人那里,我宁愿指出他关于这个问题的文章,对我来说,这篇文章完美地解决了这个问题。

文章作者:Ted Neward:多个Java家园:给Java应用程序提供他们自己的JRE

随着Java作为服务器端开发语言的指数级增长,Java开发工具,环境,框架和扩展也出现了等效的指数级增长。遗憾的是,并非所有这些工具都能在同一 Java VM 安装下很好地协同工作。有些需要符合 Servlet 2.1 的环境,有些需要 2.2。有些只在JDK 1.2或更高版本下运行,有些在JDK 1.1下运行(没有更高)。有些需要 Swing 1.0 之前的“com.sun.swing”软件包,有些需要“javax.swing”软件包名称。

更糟糕的是,即使在企业内部也可以发现这个问题,因为六个月前使用Java开发的系统可能会突然“不起作用”,因为一个新的(看似不相关的)应用程序版本需要安装一些Java扩展。这可能会使整个公司的Java应用程序部署复杂化,并导致客户想知道为什么在微软的DLL计划开始的臭名昭着的“安装-此-应用程序-打破我的系统”灾难开始五年后,我们仍然没有取得多大进展。(事实上,新的.NET计划实际上试图解决刚才描述的臭名昭着的“DLL-Hell”问题。

本文介绍如何配置 Java 安装,以便给定的应用程序接收其自己的私有 JRE,从而允许多个 Java 环境共存,而不会让客户(或系统管理员)发疯。


推荐