0

我有一些在 Java 1.4 上运行的企业应用程序。他们主要在数据库上调用存储过程,解析 XML 文件(最多几兆大),从磁盘读取和写入磁盘。我们有一个要求,现在我们必须将这些应用程序迁移到 Java 6(根本不需要更改代码)。

我的问题:

  • 如果我不在 Java 6 下重新编译我的应用程序并使用它运行它们,它会正常工作吗(我知道他们“应该”)?但是,如果有人有不同的想法,请您分享您的想法吗?
  • 更重要的问题是 - 它会对性能产生任何影响吗?如,App 在 1.4 上编译并在 1.6 上运行与 App 在 1.6 上编译和运行。与 1.4 相比,1.6 是否会对相同的旧代码进行任何字节码优化?

非常感谢js

4

3 回答 3

2

对于从 1.4 到 1.6 的构建兼容性检查枚举变量 - 这是一个新的保留字

于 2010-04-14T13:48:44.407 回答
2

这不是真正的编译问题,但您可能会发现某些第三方组件在 1.4 和 6 之间集成到 JDK 中会出现一些问题。过去我遇到过一些与 XML 和 WS 相关的组件的问题,例如 xerces/xalan。

即使包/命名空间发生了变化(因此您的现有组件可能会继续被您的代码使用),在后台会发生一些奇怪的自动发现事情,这可能会导致这些组件的不兼容版本发生冲突。

使用认可的类加载器/文件夹可以轻松解决任何问题。

我的建议 - 如果您还没有,请尽快尝试并查看。

于 2010-04-14T13:52:48.020 回答
1

优化的不是字节码,字节码格式自 Java 1(!)以来没有改变。JVM 将优化那些运行时分析告诉它值得的代码部分,但在 JIT 编译的本机代码中。是的,从 4 步到 6 步应该会带来更好的性能 - 虚拟机在这 4.5 年里已经取得了长足的进步。

于 2010-04-14T13:39:42.833 回答