实际上,我正在开发一个Java来访问HSM,以便对数据进行签名。
所以我使用了很多Sun包(PKCS11包装器和sunPKCS11提供程序)。
我看到了这个链接:http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html,它告诉我们不鼓励使用sun包。
但我想知道为什么。实际上,我正在用Java1.6JavaJDK编译我的代码。
在更新Java版本时,终端用户是否有可能无法使用我的应用程序?或者只有当我更改JDK以编译我的代码时,问题才会出现吗?还是这两种情况都有?
谢谢您的澄清。
发布于 2014-10-23 08:09:16
链接的文档中非常清楚地说明了这一点:
直接调用sun.*包的Java程序不能保证在所有与Java兼容的平台上工作。事实上,即使在同一个平台上的未来版本中,这样的程序也不能保证工作。
因此,如果终端用户不使用与您相同的JDK,则可能无法使用您的应用程序。
是的,将来您可能也会遇到JDK更新版本的问题。
发布于 2014-10-23 08:11:30
主要问题是,这些包/类可能不存在于其他JDK或相同JDK的版本中。在另一个JDK上编译代码可能会遇到问题,但您应该考虑的主要是用户:如果他们的运行时缺少所需的类,他们最终会尝试运行一些不可用的代码,并且取决于您如何构造应用程序,结果可能从功能不可用到应用程序崩溃。
请注意,如果您正在承载应用程序,即当应用程序是web应用程序时,情况也可能是这样。一些映像类也遇到了同样的问题,这使得我们无法在无需更改应用程序的情况下升级服务器上的Java版本。
https://stackoverflow.com/questions/26523650
复制相似问题