是否有机会获得有关我的 java 应用程序中使用的库的信息?
示例:如果我在 glassfish 上部署我的应用程序,glassfish 拥有自己的库,而我的应用程序也拥有自己的库。如果我像 glassfish 一样使用更新版本的库,我想测试/记录我的库是否被使用。
反射 API 让您可以找到有关加载到应用程序中的类的一些信息。例如,假设包含的库SomeClass
是从包含您可以使用的版本信息的 .jar 文件中加载的:
Package libPackage = SomeClass.class.getPackage();
String libVersion = libPackage.getSpecificationVersion();
如果 .jar 文件不包含版本信息,您仍然可以通过以下方式找到其名称:
URL classLocation = SomeClass.class.getProtectionDomain().getCodeSource().getLocation();