此产品版本支持 Java™ Platform, Standard Edition (Java SE) 6 规范。它的 Java 虚拟机提供了 Java 语言编译器和运行时环境。决定新的和现有的应用程序是否将使用 Java SE 6 所添加的功能,必要时调整准实时 (JIT) 方式并开始从不推荐的功能进行转换。
关于此任务
以下 JSR 是 Java SE 6 中的新增内容:
- JSR 105:XML 数字签名应用程序编程接口 (API)
- JSR 173:用于 XML 的流式 API (StAX)
- JSR 181:Web Service 元数据
- JSR 199:Java 编译器 API
- JSR 202:Java 类文件规范更新
- JSR 221:Java 数据库连接 (JDBC) 4.0
- JSR 222:Java XML 绑定体系结构 (JAXB) 2.0
- JSR 223:用于 Java 平台的脚本编制
- JSR 224:Java API for XML-Based
Web Services (JAX-WS) 2.0
- JSR 250:公共注释
- JSR 269:可插入注释处理 API
该新虚拟机规范添加了若干功能部件和功能(如用于集成 Java 与脚本编制语言的接口、密码提示、文件输入/输出增强功能以及流式 XML 文档的解析)有助于应用程序开发者。
过程
确定是否使用缺省实时 (JIT) 方式。 对于 Java SE 6,是否对 Solaris 虚拟机使用缺省 JIT 方式取决于硬件配置。
硬件配置并不总是 client。通过 Java SE 6,对于服务器类硬件(指的是 2+ CPU 及大于 2GB RAM),虚拟机会自动切换至 server JIT 方式。
要根据需要配置 -server 或 -client 参数,请设置服务器进程定义的通用 Java 虚拟机自变量。请参阅 Java 虚拟机设置。
- 决定是否在应用程序中使用新 Java SE 6 功能。
可以使用 JavaSE 6 功能仅将应用程序部署至 V7 或更高版本节点,因为更低的产品版本不提供 Java SE 6 虚拟机。
应用程序访问 Java 虚拟机内部的类以及 API 时可能会产生错误。这些类以及 API 没有涵盖在 Java SE 6 规范中,因此会进行更改。强烈建议不要直接使用 XML 和 XSL 解析器的实现,例如,不要直接使用为虚拟机提供 Java API for XML Processing (JAXP) 实现的 Xerces 和 Xalan 类。直接解析器 API 也是内部的,它也会更改。应用程序应该仅依赖于 Java SE 6 API 文档中定义的 JAXP API。如果应用程序需要特定版本的 Xerces 或 Xalan,或者需要某些其他
XML/XSL 解析器包,那么,请将该解析器存储到该应用程序的 WEB-INF/lib
目录中,并在应用程序部署中设置适当的类装入方式,以便从应用程序类路径中为该应用程序装入
XML 解析器 API,那么不是从 Java 虚拟机引导类路径中装入该 API。尝试迁移至新 Java SE 6 级别时,如果未遵循此准则,那么可能会造成重大错误。
- 通过设置编译器方式编译 Java SE 6 应用程序以运行先前的 Java 虚拟机级别。
编译使用 Java SE 6 构建的且打算在先前的规范上运行的应用程序时,请为 Java SE 6 编译器指定 -source 和 -target 方式。这样做可以确保所生成的字节码与较低版本的 Java 虚拟机相兼容。
例如,如果目标 Java 虚拟机的级别为 1.4.2,那么您编译使用 Java SE 6 构建的应用程序时,应指定 -source 1.4 和 target 1.4 以生成与 1.4.2 相兼容的字节码。这不会处理包、类或新增至 Java SE 6 的功能的使用。它仅处理字节码输出。如果开发者打算在多个 Java 虚拟机规范级别上运行该应用程序,就必须注意他们使用了 J2SE 包中的哪些 API。
- 处理先前已编译的 Java 2 Standard Edition (J2SE) 1.4 与 5.0 应用程序的不兼容性。
Java SE 6 与 Java 2 Technology Edition V5.0 及 Java 2 Technology Edition V1.4.2 向上进行二进制兼容,Oracle Corporation 在 http://java.sun.com/javase/technologies/compatibility.jsp 中记录的不兼容性除外。
- 从已不推荐使用的 Java 虚拟机调试接口 (JVMDI) 和 Java 虚拟机概要分析程序接口 (JVMPI) 功能转移至 Java 虚拟机工具接口 (JVMTI)。
不推荐使用的功能部件: JVMDI 和 JVMPI 功能在 J2SE 5.0 中已不推荐使用。它们已从 Java SE 6 移除。
depfeat
- 更新对 Java 命令行界面的使用。
虽然 Java SE 6 级别的命令行界面会随虚拟机供应商的不同而不同,但是它们并没有从 J2SE 5 进行大量更改。您可以在
JAVA_HOME/bin 目录中找到它们。这里有一些值得注意的命令行选项,它们对于所有 Java SE 6 实现是标准的命令行选项。
- 对于 JVMTI,请使用 -agentlib 来装入指定的本机代理程序库。
- 对于 JVMTI,请使用 -agentpath 来按完整路径名装入本机代理程序库。
- 对于 JVMTI,请使用 -javaagent 来装入 Java 编程语言代理程序(请参阅 java.lang.instrument,以获取详细信息)。
- 请参阅 apt -help 以获取有关这个支持注释功能的新命令行的信息。
- 请参阅 javac -help 以获取有关该命令行的信息和更新。
- 更新 ANT 任务。
如果已创建基于 idltojava ANT 任务(该任务是与先前版本的此产品一起提供的)的 ANT 任务,请确保它会为 Java SE 6 传递适当的参数(如为 J2SE 1.4 或 5 传递适当的参数一样)以确保它生成的存根、间距以及框架与较低版本的产品发行版相兼容。