webcam-capture icon indicating copy to clipboard operation
webcam-capture copied to clipboard

ClassNotFoundException: OpenIMAJGrabber after compiling into jar

Open MegaBloopy opened this issue 3 years ago • 1 comments

I am trying to fuse this library with another, and I got it to work, works fine in my IDE, once I compile it into an external jar however, it ends up throwing error after error, I have included the libraries needed for it to function, including the dependencies for the webcam library. But now it gives me a stack trace of

com.github.sarxos.webcam.WebcamException: java.util.concurrent.ExecutionException: com.github.sarxos.webcam.WebcamException: Cannot execute task
        at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:124) ~[?:?]
        at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:893) ~[?:?]
        at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:956) ~[?:?]
        at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:933) ~[?:?]
        at com.github.sarxos.webcam.Webcam.getDefault(Webcam.java:911) ~[?:?]
        at webcam.Main.<init>(Main.java:22) ~[?:?]
        at com.megiryuu.testing.Main.onEnable(Main.java:20) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-786]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-786]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-786]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518) ~[patched_1.16.5.jar:git-Paper-786]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432) ~[patched_1.16.5.jar:git-Paper-786]
        at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:594) ~[patched_1.16.5.jar:git-Paper-786]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:298) ~[patched_1.16.5.jar:git-Paper-786]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1069) ~[patched_1.16.5.jar:git-Paper-786]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-786]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_301]
Caused by: java.util.concurrent.ExecutionException: com.github.sarxos.webcam.WebcamException: Cannot execute task
        at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_301]
        at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:116) ~[?:?]
        ... 16 more
Caused by: com.github.sarxos.webcam.WebcamException: Cannot execute task
        at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.process(WebcamProcessor.java:72) ~[?:?]
        at com.github.sarxos.webcam.WebcamProcessor.process(WebcamProcessor.java:140) ~[?:?]
        at com.github.sarxos.webcam.WebcamTask.process(WebcamTask.java:46) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$WebcamNewGrabberTask.newGrabber(WebcamDefaultDriver.java:45) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver.getDevices(WebcamDefaultDriver.java:117) ~[?:?]
        at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:36) ~[?:?]
        at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:26) ~[?:?]
        at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_301]
        ... 1 more
Caused by: java.lang.ExceptionInInitializerError
        at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$WebcamNewGrabberTask.handle(WebcamDefaultDriver.java:55) ~[?:?]
        at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_301]
        ... 1 more
Caused by: java.lang.RuntimeException: Failed to register class com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber
        at org.bridj.BridJ.register(BridJ.java:194) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<clinit>(OpenIMAJGrabber.java:60) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$WebcamNewGrabberTask.handle(WebcamDefaultDriver.java:55) ~[?:?]
        at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_301]
        ... 1 more
Caused by: java.lang.ClassNotFoundException: com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber
        at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_301]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_301]
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[?:1.8.0_301]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_301]
        at java.lang.Class.forName0(Native Method) ~[?:1.8.0_301]
        at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_301]
        at org.bridj.BridJ.register(BridJ.java:191) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.<clinit>(OpenIMAJGrabber.java:60) ~[?:?]
        at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$WebcamNewGrabberTask.handle(WebcamDefaultDriver.java:55) ~[?:?]
        at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_301]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_301]

I am running x64/x86 architecture on Windows 10, running using Java 1.8 v.301

MegaBloopy avatar Aug 18 '21 02:08 MegaBloopy

Hi @MegaBloopy ,


Caused by: java.lang.RuntimeException: Failed to register class com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber
        at org.bridj.BridJ.register(BridJ.java:194) ~[?:?]

Please check if native binary, i.e. dll or so lib are packed or is your OS supported.

java.lang.ClassNotFoundException is caused by here:

public class OpenIMAJGrabber extends CPPObject {

	static {
		Platform.addEmbeddedLibraryResourceRoot("com/github/sarxos/webcam/ds/buildin/lib/");
		BridJ.register();
	}
}

rather than OpenIMAJGrabber not packed.

Alex

alexmao86 avatar Sep 30 '21 05:09 alexmao86