LTI-Civil Project出口到JAR时出现了错误的错误

时间:2012-11-05 00:20:58

标签: java native webcam

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

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

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

你说“它显然确实”实现了这个界面,但我认为问题在于实际上没有。我认为你有这种界面类型的多个“化身”。

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

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

您的应用程序使用类加载器会导致在两个不同的类加载器中加载两个.class文件。我怀疑你的JarClassLoader实例没有正确的父类加载器。