我们有几个应用程序在Java 5上运行,现在想要引入一个基于Java 6的应用程序.这两个java版本可以在Windows下共存吗?
是否有任何控制面板可以为不同的应用程序设置适当的Java版本,或者以任何其他方式设置,将使用哪个版本的Java来运行该特定应用程序?
当然,您可以在Windows下使用多个版本的Java.不同的应用程序可以使用不同的Java版本.你的申请是如何开始的?通常你会有一个批处理文件,其中有类似的东西
java ...
这将使用PATH变量搜索Java可执行文件.因此,如果Java 5首先出现在PATH上,那么运行Java 6应用程序时会遇到问题.然后,您应该修改批处理文件以使用某个Java版本,例如通过定义JAVA6HOME
具有该值的环境变量C:\java\java6
(如果此目录中安装了Java 6)并更改批处理文件调用
%JAVA6HOME%\bin\java ...
绝对可以并排安装几个JRE/JDK版本.此外,您不必为此发生任何特殊事情,因为Sun正在为每个文件创建一个不同的文件夹(在Program Files下).
没有控制面板可以检查哪个JRE适用于每个应用程序.基本上,将运行的JRE将是PATH环境变量中的第一个.您可以更改它,或者更改JAVA_HOME变量,或创建特定的cmd/bat文件以启动所需的应用程序,每个文件在路径中具有不同的JRE.
我对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下运行(并且不高于JDK 1.1).有些需要来自Swing前1.0天的"com.sun.swing"软件包,其他需要"javax.swing"软件包名称.
更糟糕的是,甚至在公司企业内也可以发现这个问题,因为由于安装了一个新的(看似无关的)应用程序版本所需的Java扩展,六个月前使用Java开发的系统可能突然"无法工作".这可能会使整个公司的Java应用程序部署变得复杂,并引导客户想知道为什么,在臭名昭着的"安装 - 这个应用程序 - 破坏我的系统"开始五年后,微软的DLL计划开始出现问题,我们仍然存在进步远不止于此.(事实上,新的.NET计划实际上试图解决刚刚描述的臭名昭着的"DLL-Hell"问题.)
本文描述了如何配置Java安装,以便给定的应用程序接收自己的私有JRE,允许多个Java环境共存而不会让客户(或系统管理员)疯狂......