• Idea打包dll到jar包


    参考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();
                }
            }
        }
    }
    
    ``
  • 相关阅读:
    ASP.NET程序中常用的三十三种代码
    .NET面试题之1
    Assembly ‘X’ could not be uninstalled because it is required by another application
    Globalization and Localization
    SQL 2005 Reporting Services:物理分页和逻辑分页 SSRS 2008 report export to PDF Cannot get size to work
    GAC 学习
    Repeating Tablix Headers In SSRS 2008
    How do work with NULL in TSQL
    Visual C++ Native and .NET Interoperability
    C# WinForm开发系列 Reporting Services
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/14090479.html
Copyright © 2020-2023  润新知