首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生产中运行哪个Java版本的考虑

在生产中运行哪个Java版本的考虑
EN

Software Engineering用户
提问于 2013-01-17 17:16:40
回答 1查看 1.9K关注 0票数 14

有些人运行技术的尖端-更新某一天的东西被更新。在生产中,这是不合适的。

关于当前(Java 7)版本是否已经准备好生产的研究产生了大量可能不再正确的旧材料(在撰写本文时,Java 7已经发布了一年半,这似乎相当长)。

我需要考虑哪些因素才能确定将生产环境升级到更高版本的Java是否合适?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-01-17 22:46:37

首先要问的问题是:“机器上支持Java版本吗?”虽然更新JRE是一回事,但底层操作系统可能不支持运行新版本的Java (支持的认证和支持契约等等,这是许多企业环境所喜欢的)。

许多java生产环境实际上都运行在应用程序服务器之上。这将是下一个考虑因素。Java应用服务器的维基百科比较显示了Java的支持版本。在Oracle的JavaEE兼容性概述中可以进一步看到这一点。JBoss企业应用平台6的测试配置是针对JavaSE6.0UPDATE 6u30的。JavaSE6.0更新6u30也是JBoss应用服务器7.1.0终版的测试配置。这些可能在Java 7中有效,但它们不是经过测试的配置。

在应用程序服务器上展开时,有一些活动代码分析工具,用于事后进行调试。全知调试器 (另见)和Dynatrace就是这方面的两个例子。这些应用程序的工作方式是对运行的java的活动字节代码进行检测(修改),以便向其报告。由于这些应用程序通过修改字节代码来工作,如果字节代码以它们无法使用的方式更改(例如在新的JRE中),它们将无法工作。

接下来是框架。这方面的一个例子是java附带的JAXB和使用它的Spring。更改为Java 7,更新后的JAXB生成与某些框架不兼容的代码(这需要更新它们,并且它们的依赖关系需要更新.)。

下一个列表是构建工具。我们需要确保构建环境使用的是适当版本的Java。为Java 7编写代码,但不更新Maven或Ant使用的版本,就会导致问题。有时,构建工具本身与一个版本紧密地结合在一起,并带有特定的插件。

测试工具。PMD、findbug和校验样式等东西可能无法识别新版本的Java中的新结构--它们可能会与字符串开关语句或复合捕获非常混淆。进入检测的工具,如代码覆盖率,在新JVM中可能无法工作。在Java 7的上下文中,Cobertura和Emma尚未更新到新的JRE (同样,这些应用程序修改字节代码以查看运行的代码和不运行的代码)(请参见jdk7 7的开放源代码覆盖率库)。这可能需要对构建脚本进行更改,以便从一个脚本切换到另一个脚本。

还有IDE。需要将IDE更新为知道语言中的新结构的版本。Eclipse的宣布对Java 7的支持显示了这些问题。

最后,当然也是同样重要的是开发人员。应该由开发人员编写新代码,并了解如何对代码进行重组。从Java1.4到1.5,引入了模板和注释,开发人员需要时间才能进入可用新结构的思维模式。同样,集合在1.2中返工,使开发人员不再使用HashTable和Vector。在更新版本的同时,还应对新的语文结构进行一定程度的培训。

票数 11
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/183982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档