我有一个服务器-客户机上运行的应用程序java1.3;我想改变java1.6步的步骤,这意味着前几个客户,比其他客户和最终服务器...我想知道你能直接我的一些常见问题,可以来和我应该在什么之后?

有帮助吗?

解决方案

Sun试图保持高水平的向后兼容性,因此您可以简单地安装新的JVM并使用它重新启动应用程序。

描述Java 1.6与早期版本的向后不兼容性的文档是这里。本文档链接了 Java 1.5 Java 1.4 。您可能希望阅读此文档以了解可能存在的陷阱。

Java 1.5和 Java 1.6 引入了新的类文件格式。 JVM也将运行旧的类文件,但重新编译代码 - 尤其是使用JDK 1.6 - 将有助于新JVM利用一些更改来加快应用程序的运行速度。所以你可以考虑重新编译。

此外还引入了一些新的关键字,即assert(在1.4中)和enum(在1.5中)(如Yuval已经提到的)。如果您将这些单词用作标识符,则重新编译将失败,但旧的类文件将起作用。您可以将开关 -source 提供给javac以使其编译:' javac -source 1.3 '将编译代码而不用断言 enum 作为关键字。

其他提示

在我的脑海中,在字段和局部变量中查找名称 enum assert ......这些词已成为java 1.4和5中的关键字。如果java 6编译器看到它们,它们会将它们标记为编译错误。

Yuval = 8-)

太阳保持一个列表中的不兼容问题,引入与每一个新版本的Java。

最后文件1.4.2有联系的兼容性说明回JAVA为1.0。

通常,Sun的JVM的向后兼容性非常好,但并不完美。我已经看到三个非常大的应用程序从1.3迁移到1.5并且只遇到少量问题,其中最大的问题是一个Swing掩码进入无限的事件处理循环并冻结了1.4以下的应用程序

服务器部分不太可能导致问题,但是Swing中存在相当大的底层更改,特别是在1.3和1.4之间 - 例如,焦点子系统已被完全重写。

应用程序仍然可以毫无问题地运行,但你绝对应该进行广泛的测试。

当我在一个小工具上从1.4.2移动到1.5时,很多东西都破了:屏幕刷新变得不稳定,元素移动等等。

Sun的JRE不保持所有内容的向后兼容性。有时,当项目被弃用时,它们会在很短的时间后完全消失。

我们用“股票”编写了所有内容。 Java,也使用Sun的库。

我也看到过几个用纯Java编写的应用程序,在同一版本的JRE中的一个或两个平台上运行正常,但在其他版本的JRE上运行失败(我使用的产品现在在Windows上工作得很好,在Mac上运行正常OS X,在Linux上很不错,但在Solaris上失败 - 所有都使用相同的JRE。)

移动版本不是一个简单的步骤,除非应用程序非常小。

我的经验是兼容性非常高。我只发现了一个我无法在当前版本上运行的应用程序。无论出于何种原因(没有来源,所以我没有深入研究),一个应用程序不会运行1.4.2以外的任何其他应用程序。我曾经处理过的所有其他东西(其中一些相当大)已达到1.6就好了。无需修改。

YMMV当然,所以你必须尝试看看......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top