这可能是一个愚蠢的问题,但是我会遇到运行Java程序和Java版本1.6 和 1.7中编译的相关库的任何问题(我使用1.7进行编译,而有些库使用1.6编译)并在1.7 JRE中运行整个程序?
dig*_*ise 89
前面已经回答了你的大部分安全和最产品和3 次党库将简单工作.但是,确实存在非常罕见的情况,其中在JDK版本之间引入了二进制不兼容性(使用较旧的JDK编译的类文件将无法在较新的JVM中运行的那些).
使用JDK 9打包,有一个名为jdeprscan的工具可以验证兼容性,列出代码中不再使用的API并建议备选方案(!).您可以指定目标JDK版本(适用于JDK 9,8,7和6),它会列出具体到你的目标版本不兼容.
一个合理的经验法则是为您的软件目标的JRE版本使用最新的稳定版本库.显然,您会发现此规则有许多例外情况,但总的来说,公共图书馆的稳定性通常会随着时间的推移而增加.
当然,在更改依赖项的版本时,必须考虑API兼容性和版本控制.
同样,大多数流行的依赖项都会有可以提供此类信息的网页.
但是,如果你使用的东西有点模糊,你可以看出哪个JRE是你编译的依赖项中的类.
这是一个很好的答案,如何找出类版本.您可能需要先解压缩JAR文件.
Ewa*_*ald 78
你不会遇到任何问题 - 这是Java的魔力 - 它向后兼容.你可以在Java 8上运行几乎所有来自Java 1的代码.没有理由说Java 6代码不能在Java 8 Runtime上运行.
有趣的是,对于写入的应用程序,比如Java 1.4,在以后的运行时运行它们时甚至可以提高速度.这是因为Java不断发展,不仅仅是称为"Java"的语言,还有JVM(Java虚拟机).我仍然拥有10多年前的源代码仍然有效,正如最新的JVM所预期的那样.
如果您想要定位Java 5 VM,那么您可以使用Java 8 SDK工具进行定位.您可以最终指定您希望支持的目标VM,只要您记住版本5 VM可能不支持版本8 VM的所有功能.
我刚刚测试了我在Java 5中编写的针对新Java 8运行时的代码,一切都按预期工作,因此,即使我们现在拥有更强大的语言和运行时,我们仍可以继续使用过去的投资.只是这一点使Java成为公司的一个伟大的发展选择.
| 归档时间: |
|
| 查看次数: |
73914 次 |
| 最近记录: |