海康JAVA SDK初始化路径默认是放在classes下面,见下:

HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK", HCNetSDK.class);

有时我们为了更加规范,不一定直接放在这个下面,而是放到某个目录中。

我这边就是放到classes下面的hikvision目录中。

改造加载路径,动态获得一个绝对路径来加载库,见下:

import java.io.UnsupportedEncodingException;

public class HCNetSDKPath {

  public static String DLL_PATH;
static {
String path = (HCNetSDKPath.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1).replace("/",
"\\");
try {
DLL_PATH = java.net.URLDecoder.decode(path, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
HCNetSDK INSTANCE = (HCNetSDK) Native
.loadLibrary(HCNetSDKPath.DLL_PATH + "hikvision" + File.separator + "HCNetSDK.dll", HCNetSDK.class);

海康JAVA SDK库动态路径加载的更多相关文章

  1. 在Qt中配置海康工业相机SDK及遇到的问题(报错)

    1.在项目的.pro文件里导入海康工业相机的SDK路径 INCLUDEPATH += \ D:\HKVersion\MVS_3.1.0\MVS\Development\Includes #这时到入Op ...

  2. 深入理解LINUX下动态库链接器/加载器ld-linux.so.2

    [ld-linux-x86-64.so.2] 最近在Linux 环境下开发,搞了好几天 Compiler 和 linker,觉得有必要来写一篇关于Linux环境下 ld.so的文章了,google上搜 ...

  3. 使用javassist运行时动态重新加载java类及其他替换选择

    在不少的情况下,我们需要对生产中的系统进行问题排查,但是又不能重启应用,java应用不同于数据库的存储过程,至少到目前为止,还不能原生的支持随时进行编译替换,从这种角度来说,数据库比java的动态性要 ...

  4. Vue 动态图片加载路径问题和解决方法

    最近在做一个树形结构的组件,使用了Vue和element UI中el-tree组件.因为树中每个节点都需要显示一个图标图片,并且需要根据后台传入的数据类型动态地显示,所以图片的路径需要动态地加载.下面 ...

  5. Java_动态重新加载Class总结

    在此记载Java动态重新加载Class的点点滴滴,实现之前也在网上看了很多文章,但发现不是很清晰,后来发现总结,看源码实现还是最靠谱. 直接上代码: package com.lkb.autoCode. ...

  6. Android系统下的动态Dex加载

    1 问题在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把使用 ...

  7. Android系统下的动态Dex加载与app速度优化

    1 问题 在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把 ...

  8. Java类加载机制及自定义加载器

    转载:https://www.cnblogs.com/gdpuzxs/p/7044963.html Java类加载机制及自定义加载器 一:ClassLoader类加载器,主要的作用是将class文件加 ...

  9. Java程序设计19——类的加载和反射-Part-B

    接下来可以随意提供一个简单的主类,该主类无须编译就可使用上面的CompileClassLoader来运行它. package chapter18; public class Hello { publi ...

随机推荐

  1. Nginx 学习笔记(十)介绍HTTP / 2服务器推送(译)

    原文地址:https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/ 我们很高兴地宣布,2018年2月20日发布的NGINX 1.13.9支持 ...

  2. react使用proxy代理配置

    proxy,默认为NULL,类型为URL,一个为了发送http请求的代理 在package.json文件中使用proxy配置可以解决跨域问题 使用注意事项: create-react-app脚手架低于 ...

  3. 细说logback之简介

    官网:https://logback.qos.ch/https://logback.qos.ch/manual/index.html logback手册1.下载logback是slf4j的原生实现,所 ...

  4. Silverlight程序之修改命名空间

    有时候,为了使用已有的代码,可能需要更改主程序的命名空间,以生成新的应用.修改命名空间,不能胡乱一通全部使用“替换”,否则程序可能无法正常运行.通过笔者实践,主要有以下几个地方需要注意(以WebGIS ...

  5. React Native的语法之ES5和ES6

    原文地址:http://www.devio.org/2016/08/11/React-Native%E4%B9%8BReact%E9%80%9F%E5%AD%A6%E6%95%99%E7%A8%8B- ...

  6. jsp实现验证码登陆

    login.jsp: <%@ page language="java" import="java.util.*,com.cn.servlet.*" pag ...

  7. impala系列: 基本命令和jdbc连接

    --======================= 使用impala-shell 登录 --======================= impala-shell --auth_creds_ok_i ...

  8. [Linux] [JNI]

    使用 javah 生成头文件后, 编写c代码来实现其中声明的函数, 本文主要解决以下问题: (1) 如何生成动态链接库文件 使用如下格式的 gcc 命令可以将 C文件 编译为 .so 文件, 对于其依 ...

  9. TTS与MediaPlayer混合使用

    package com.xxx.xxx.Util; import android.content.Context; import android.media.MediaPlayer; import a ...

  10. request.setCharacterEncoding()、response.setCharacterEncoding()的区别

    request.setCharacterEncoding()是你设置获得数据的编码方式.response.setCharacterEncoding()是你响应时设置的编码.response.setCo ...