大纲:
1.我的项目使用LTI-CIVIL捕获网络摄像头。
2.在Eclipse中,一切正常。
3.由于LTI_CIVIL使用本机库访问硬件,因此我选择使用JarClassLoader(信息在此处http://www.jdotsoft.com/JarClassLoader.php#download找到),该文件允许在运行时将本机库解压缩到一个临时文件夹中。一切正常,我什至可以访问网络摄像头捕获流,直到...
我尝试使用从类型为com.lti.civil.NativeVideoFormat的网络摄像头上交的图像。问题在于,当从可执行jar运行时,它说此类显然没有实现com.lti.civl.VideoFormat。我什至打印出了在eclipse上运行的代码的getClass(),并验证了网络摄像头图像是相同类型的。但是,当我打印出NativeVideoFormat的getClass()实例时,在eclipse版本中此输出为true,但在jar版本中则为false。

有趣的是,此问题以前曾出现过,但没有解决方案:
https://forums.oracle.com/forums/thread.jspa?messageID=10637883&#10637883

谢谢你的帮助

最佳答案

您说“它确实可以实现”该接口,但是我认为问题在于它实际上没有。我认为您具有该接口类型的多个“信息”。

类(或接口)在运行时的实际类型取决于Class对象的标识:


如果clazz == clazz2,则它们表示相同的类型。 (equals(Object)上的Class方法测试相同条件...)
否则,无论类名如何,它们都不会。


看来您的应用程序对类加载器的使用导致一个.class文件在两个不同的类加载器中被加载了两次。我怀疑您的JarClassLoader实例没有正确的父类加载器。

关于java - 导出到JAR时LTI-Civil Project出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13224422/

10-11 04:13