gpt4 book ai didi

java - Netbeans:构建后找不到库

转载 作者:行者123 更新时间:2023-12-02 08:23:55 28 4
gpt4 key购买 nike

这是我的系统信息:

IDE:NetBeans 6.9操作系统:Ubuntu 10.10

我正在使用 java 和 v4l4j (http://code.google.com/p/v4l4j/) 编写一个程序,该程序从网络摄像头捕获帧并以特定方式处理它们。当程序启动时,会出现一个对话框,询问捕获设备。一旦选择了设备,查看器就会启动。此时就用到了webcam类。

每当我使用 netbean 的运行功能运行程序时,一切都很好。 100%有效。但是,当我将 jar 和所有需要运行的文件复制到不同的文件夹中进行分发时,它根本不起作用。一旦选择 GUI 完成并且查看器启动,程序就会崩溃并出现以下错误:

Cant load v4l4j JNI library
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no v4l4j in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at au.edu.jcu.v4l4j.VideoDevice.<clinit>(Unknown Source)
at programName.webcam.initVideoDevice(webcam.java:49)
at programName.webcam.<init>(webcam.java:32)
at programName.Main.initCamera(Main.java:164)
at programName.Main.initCamera(Main.java:184)
at programName.Main.<init>(Main.java:82)
at programName.openingWindow$checker.actionPerformed(openingWindow.java:126)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

同样,只有当 netbeans 耗尽时才会发生这种情况。我将 lib 文件夹复制到与 jar 相同的目录中。基本上,这就是我所拥有的:

directory root/
program.jar
data/
images/
settings/
lib/
v4l4j.jar

NetBEans dist 文件夹中的所有文件均已复制,并且我拥有所有必需的资源文件,例如图像和设置文件。由于某种原因,这曾经完美地工作,直到最近,当我开始收到此错误时。

此外,这是错误引用的函数。这是该类第一次使用缺失的库。

private void initVideoDevice() throws Exception {
vd = new VideoDevice(path);
fg = vd.getJPEGFrameGrabber((int)resolution.getWidth(), (int)resolution.getHeight(), 0, standard, quality);
}

最佳答案

正如 BuHHu-nyx 指出的那样,发生这种情况是因为找不到 v4l4j J​​NI 共享库 (libv4l4j.so)。您必须使用 -D 参数告诉 JVM 在哪里可以找到这个库(及其依赖项),除非您必须使用 libv4l4j.so 的完整路径,而不是您尝试过的 v4l4j.jar 。你安装了v4l4j吗?如果是,libv4l4j 应该位于/usr/lib/jni 中。

关于java - Netbeans:构建后找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4904126/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com