Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我遇到了将.dic文件(DICOM:医学格式的数字成像和通信)添加到 Swing Java 应用程序的情况,我必须Dicom.jar识别.dic 扩展
.dic
Dicom.jar
一旦我添加了Dicom.jar构建路径,当我从构建路径中删除 jar 时,代码运行正常,代码中没有任何错误(我从未使用过包含在 中的任何类Dicom.jar)
但是我很困惑Dicom.jar如果代码不使用它的任何类,它怎么能识别出来
提前致谢 :)
可能 Dicom 使用了一种称为 SPI(服务提供者接口)的方法。这个链接提供了一个很好的解释。
这种方法用于图像,也用于声音,您可以在需要时创建自己的 SPI。
了解正在发生的事情的关键是“动态类加载”。您的应用程序使用的运行时库中的某些内容是从该 JAR 文件中查找和加载类。
这很可能发生,因为 Dicom 提供的代码符合执行此类操作的 Java 标准库的子系统之一所使用的 SPI 机制。(Java 库中有一些 SPI 实例。)
Dicom 还可以通过其他方式与其他 3rd 方代码交互;例如,通过第 3 方 SPI 或老式的“将类名放入属性文件”机制。