diff --git a/photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java b/photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java index c7a1fbd91..1ee6f4ed4 100644 --- a/photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java +++ b/photon-server/src/main/java/org/photonvision/raspi/PicamJNI.java @@ -36,15 +36,16 @@ public class PicamJNI { if (libraryLoaded || !Platform.isRaspberryPi()) return; try { + File libDirectory = Path.of("lib/").toFile(); + if (!libDirectory.exists()) { + Files.createDirectory(libDirectory.toPath()).toFile(); + } + + // We always extract the shared object (we could hash each so, but that's a lot of work) URL resourceURL = PicamJNI.class.getResource("/nativelibraries/libpicam.so"); File libFile = Path.of("lib/libpicam.so").toFile(); - if (!Files.exists(libFile.toPath())) { - // Assumes that the directory doesn't exist if libpicam doesn't exist - Files.createDirectory(Path.of("lib/")).toFile(); - - try (InputStream in = resourceURL.openStream()) { - Files.copy(in, libFile.toPath()); - } + try (InputStream in = resourceURL.openStream()) { + Files.copy(in, libFile.toPath()); } System.load(libFile.getAbsolutePath()); diff --git a/photon-server/src/main/resources/nativelibraries/libpicam.so b/photon-server/src/main/resources/nativelibraries/libpicam.so index 291236c8f..b595f32e0 100755 Binary files a/photon-server/src/main/resources/nativelibraries/libpicam.so and b/photon-server/src/main/resources/nativelibraries/libpicam.so differ