我正在使用我没有分发许可的商业 API 库。
我的应用程序的最终用户必须安装该库并将其放在类路径中,这样我的应用程序才能运行。除了 jar 之外,它们还必须在 LD_LIBRARY_PATH 中有一些其他文件。
我更愿意在启动时运行测试,确保先决条件已安装并且我正在使用的对象正常工作。如果不是,请返回一条用户友好的消息,其中包含说明或执行某种更正。 (比如询问用户库的安装位置并将一些变量写入启动脚本)。
我找到了 ClassLoader.loadClass我认为我应该使用它,但我还没有找到一个示例来说明我的用例,我不确定是否可以直接使用它。
我相信如果 loadClass 成功,我需要实例化一个类对象并尝试使用它来确定 LD_LIBRARY_PATH 是否设置正确。
如果有任何帮助,我将不胜感激。
最佳答案
您需要一个抛出异常的方法,在该方法中您可以捕获 ClassNotFoundException
或 NoClassDefFoundError
public void testCatchException() {
try {
checkClassesExisting();
} catch (ClassNotFoundException ex) {
// TODO handle exception
} catch (NoClassDefFoundError ex) {
// TODO handle exception
} catch (Exception ex) {
// other error
}
}
public void checkClassesExisting() throws Exception {
// instantiate here the class in doubt
Dummy = new Dummy("xx");
}
附加信息在 NoClassDefFoundError
关于Java:如何干净利落地处理没有外部库的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14655425/