Idea打包dll到jar包
阿新 • • 發佈:2020-12-05
參考IntelliJ Idea+javafx+第三方庫+dll 打包為jar
程式碼
import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.opencv.videoio.VideoCapture; import org.opencv.videoio.Videoio; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class Main { private static String rtsp_62 = "rtsp://admin:密碼@192.168.0.62:554/stream0"; private static String rtsp_64 = "rtsp://admin:密碼@192.168.0.64:554/stream0"; private static String rtsp_93 = "rtsp://admin:密碼@192.168.0.93:554/stream0"; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); private static String dir = "D:/VideoRec/Image"; private static String nginxServer = "http://192.168.0.56:8999"; static { try { // getClass().getClassLoader().getResourceAsStream(arg0); // System.out.println("MainTest.class.getClass()"+MainTest.class.getClass().toString()); InputStream in = Main.class.getResourceAsStream("opencv_java440.dll"); //dll檔案位置 System.out.println("Main.class.getClass()" + in); File ffile = new File(""); String filePath = null; filePath = ffile.getAbsolutePath() + File.separator + "opencv_java440.dll"; System.out.println("filePath opencv_java410.dll is " + filePath); File dll = new File(filePath); FileOutputStream out = new FileOutputStream(dll); //快取dll位置 int i; byte[] buf = new byte[1024]; try { while ((i = in.read(buf)) != -1) { out.write(buf, 0, i); } } finally { in.close(); out.close(); } System.load(dll.getAbsolutePath());// dll.deleteOnExit(); } catch (Exception e) { System.err.println("load jni error!"); } } public static void main(String[] args) { // System.load(ClassLoader.getSystemResource("opencv_java440.dll").getPath()); System.out.println("load opencv_java440.dll success"); } private static void openVideo64() { VideoCapture capture = null; try { // System.load(ClassLoader.getSystemResource("static/opencv_java440.dll").getPath()); capture = new VideoCapture(); capture.open(rtsp_64); int height = (int) capture.get(Videoio.CAP_PROP_FRAME_HEIGHT); int width = (int) capture.get(Videoio.CAP_PROP_FRAME_WIDTH); if (height == 0 || width == 0) { throw new Exception("camera not found!"); } Mat capImg = new Mat(); Mat temp = new Mat(); while (true) { capture.read(capImg); Imgproc.cvtColor(capImg, temp, Imgproc.COLOR_RGB2GRAY); String path = dir + "/" + sdf.format(new Date()) + ".jpg"; Imgcodecs.imwrite(path, temp); // sendToWeb("2", path); // Thread.sleep(300); } } catch (Exception e) { System.out.println("異常:" + e.toString() + " --- " + Arrays.toString(e.getStackTrace())); } finally { if (capture != null && capture.isOpened()) { System.out.println("-----capture--done--"); capture.release(); } } } } ``