Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序部署到多个JRE_Java_Deployment_Applet - Fatal编程技术网

Java小程序部署到多个JRE

Java小程序部署到多个JRE,java,deployment,applet,Java,Deployment,Applet,各位 我面临以下挑战,我想将一个依赖于Java 1.8语法的小程序部署到数百个已经运行一个依赖于Java 1.5的旧Java小程序的客户端工作站中 问题是,我无法访问Java1.5Applet代码,甚至无法访问它的LauncherHTML页面。唉,这个launcher Html页面依赖于Applet标记,因此将尝试加载工作站上安装的最新Java插件版本。 我不喜欢依赖任何虚拟化解决方案,我必须作为Java小程序运行,如果您认为Web Start有帮助的话,也许可以考虑使用它 我的问题是: 在呈现

各位

我面临以下挑战,我想将一个依赖于Java 1.8语法的小程序部署到数百个已经运行一个依赖于Java 1.5的旧Java小程序的客户端工作站中

问题是,我无法访问Java1.5Applet代码,甚至无法访问它的LauncherHTML页面。唉,这个launcher Html页面依赖于Applet标记,因此将尝试加载工作站上安装的最新Java插件版本。 我不喜欢依赖任何虚拟化解决方案,我必须作为Java小程序运行,如果您认为Web Start有帮助的话,也许可以考虑使用它

我的问题是: 在呈现小程序标记时,是否有本地工作站配置/黑客程序来告诉浏览器加载特定(旧)Java版本?
否则,是否有一种方法可以使用Java Web Start解决此问题,并在不更新“官方”工作站Java插件版本的情况下运行我较新的Java小程序?

好的,如果您问了几个问题,下面是一些答案:

  • 使用“较低”的JRE/JDK(如1.7、1.6或1.5)运行Java1.8代码是不可能的。但是,另一种方法是可能的-您可以使用Java1.8运行Java1.5Applet
  • 您不需要破解您的工作站-如果您只安装了一个java版本(即使是较旧的版本),并且安装/配置正确,则该版本将用于启动小程序
  • 有了下一代插件(自年引入),就可以用jnlp文件启动小程序。允许您指定特定的java版本,如果未安装该版本,则可以下载该版本。一个例子是:

  • 一些大概的想法,如果我没有完全理解你,请纠正我:

    您希望两个小程序都运行,对吗? 为了实现这一目标,你必须在某个时候做出一些改变。可能性(我的回答忽略了安全性-从这个角度来看,始终使用最新的java版本):

  • 安装最新的Java 1.8并签署旧的小程序。签署小程序不需要源代码——只需访问您的网页,运行小程序,然后在java缓存中搜索applet.jar即可。使用正式证书对其进行签名,并将其部署到服务器上。(此外,这可能还需要添加一些清单属性)
  • 将新的小程序降级为java 1.7或1.6,然后安装旧的java,如1.7.0_17。签字不是强制性的。如果您看到Java 6的版本,它将是1.6.0_43
  • 理论上,您可以使用jnlp定义一个确切的java版本,用于运行小程序。问题是,它是从1.6.0_10开始引入的,因此您的1.5 java还不够。如果可以使用稍新的java运行旧的小程序,并将jnlp文件添加到网页中,那么它就可以工作了。为此,您需要:安装两个较新的java版本:一个1.6.0_10或更高版本(直到1.6.0_43或1.7_17)和最新的1.8.0_X。然后在jnlp文件中定义确切的1.6/1.7 java。当访问您的网页时,将启动1.8插件,该插件检测到需要较旧的java版本,然后再启动较旧的版本。对于较新的小程序,将使用最新的java

  • 为什么要使用旧的JRE?旧的applet将与新的JRE完美地运行。(显然,这对于新的applet和旧的JRE是不正确的)。因为旧的applet没有签名,并且与新的Java版本设置的新安全标准不兼容。