这个讨论涉及获得一种在不同操作系统中加载不同 jar 的方法。
案例场景
我正在开发一个称为 NSK 的特定操作系统。它是一种 unix 风格,为 HP NSK 服务器提供支持。我在 NSK 上运行我的一个中间件应用程序(一个 java 应用程序)。要求是使此应用程序脱离平台。即它也必须在其他平台上工作,如 LINUX 或 Windows。
为了实现这一点,我又引入了 1 个 jar。现在我需要介绍一个逻辑,JVM 必须在运行时加载适当的 jar(NSK 上的 jar1 和任何其他非 NSK 平台上的 jar2)。我使用以下逻辑来实现:
代码:
if (System.getProperty(os.name).equals("NSK"))
load jar1
else
load jar2
上面的代码工作正常,直到我在上面使用的 getProperty API 中遇到安全异常“SecurityException”之一。这告诉运行应用程序的用户没有使用 getProperty() 的必要权限。所以,上面的逻辑在这里折腾。
有什么办法可以解决这个异常并且仍然能够找出操作系统的详细信息并加载正确的 jar?或者更好,有没有更好的逻辑来实现相同的?
有关 getProperty(..) 的更多详细信息,请参阅以下链接
http://docs.oracle.com/javase/7/docs/api/java/lang/System.html
提前致谢
问候, 帕比特拉