我正在开发一个我计划公开发布的应用程序,或者至少与一群人共享。我作为开发人员面临的问题是兼容性。在我的机器上,我正在使用新的Java 8,但我害怕使用它的新功能,事实上,我甚至害怕使用Java 7中的新功能,例如try-with-resources
,因为我担心用户不会拥有最新的Java版本,因此无法使用我的应用程序。例如,我学校的计算机仍然使用Java 6.
首先,我认为这是正确的吗?或者可以在具有较旧JRE的计算机上运行使用较新JDK编译的代码?如果我是正确的,是否有既定的“规则”或兼容性标准?类似于“确保您的代码与两个旧版本的JRE兼容!”或者纯粹是开发人员判断何时应该将新功能用于已发布的工作?而且只是为了强调,我说的只是运行程序。用户永远不必编译它。
我知道这有点开放,但这是我能想到的最好的地方。 感谢。
答案 0 :(得分:2)
首先,您始终可以通过使用-version
标志进行编译来指定要支持的Java版本。这意味着,由于您使用的是Java 8,因此您可以始终强制将代码编译为较低版本(即Java 6)。
关于Java旧版本的观点 - 是的,您可能会遇到这种情况。很多人出于某种原因不更新他们的Java版本。但是,这是您必须做出决定的地方:您选择支持他们的版本,还是选择支持其他版本?这个特定的部分是开放式的,但取决于你最终想要在你的代码中使用什么(钻石操作符,try-with-resources(实际上非常很好),NIO),那么你' d想要使用适合你的Java版本以及你想要支持的版本。