精华内容
下载资源
问答
  • 也就是类似sql的where 字段A=字段B这样的条件,我查了下网上有些帖子中写的用$where的方式我查询的时候会出错,类似...另外mongodb的java开发文档哪里有比较详细的,官网上的例子实在太简单了没有更多方法的使用说明
  • ...在SAE开发微信公众平台(java)的讲解基本上已经将完了,这是我第一次博客,没有什么经验,希望大家谅解,通过前面的两篇文章,大致讲解了怎么用SAE,怎么开发微信公众平台。首先我要讲解下...

    各位看官,真是不好意思,更新比较慢。

    不过,本人只是将博客作为一个技术沉积的平台,将自己所想,所总结的写下来,顺便给大家围观。本文在公布的源码中会提供接口及文档说明,尽量让看官们在最短的时间内看懂并用上。

    在SAE开发微信公众平台(java)的讲解基本上已经将完了,这是我第一次写博客,没有什么经验,希望大家谅解,通过前面的两篇文章,大致讲解了怎么用SAE,怎么开发微信公众平台。首先我要讲解下,SAE内容很多,很宽泛,用到什么,我才了讲什么。而微信公众平台,其实就是一个接口,一个前端,而且是内容非常有限的前端。只要按照腾讯的要求,就能很简单的对接上。我现在正在开发一个项目,却不觉得有什么好讲的。主要的内容还是服务端的东西,设计模式,框架,数据库连接,什么都与微信公众平台无关。

     

    后面的文章中,我会逐步讲一下工具的使用,像Jetty,log4j等等,也会讲一些设计模式,框架原理等等。感谢大家的关注。谢谢

    展开全文
  • 这里只关于开发海康视频SDK可能会遇到的问题,要想知道怎么调用这套SDK可以直接看开发文档。 (一)、 导入jna和examples两个jar包 在哪找? 开发包里面LinuxJavaDemo(也就是开发实例)目录下 怎么导入,...

    放在开头的说明:

    1. 系统环境 Ubuntu 18.04
    2. 编译工具 IDEA
    3. maven仓库管理依赖
    4. 海康摄像头 普通的枪击网络摄像头

    这里只写关于开发海康视频SDK中可能会遇到的问题,要想知道怎么调用这套SDK可以直接看开发文档。

    (一)、 导入jna和examples两个jar包

    两个jar包
    在哪找?
    开发包里面LinuxJavaDemo(也就是开发实例)目录下
    怎么导入,以及项目打包时怎么附加?
    命令行
    mvn install:install-file -DgroupId=com.sun -DartifactId=jna -Dversion=1.0 -Dpackaging=jar -Dfile= jar包的完整路径加包名,像这样 /jarlibs/jna.jar
    同理install examples.jar,
    mvn install:install-file -DgroupId=com.sun.jna -DartifactId=examples -Dversion=1.0.0 -Dpackaging=jar -Dfile=
    之后再添加下面依赖就行了。

    		<dependency>
                <groupId>com.sun</groupId>
                <artifactId>jna</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jna</groupId>
                <artifactId>examples</artifactId>
                <version>1.0</version>
            </dependency>
    

    如果你是用maven自带的package打包,添加下面这一段可以在打包可执行jar包时把这两个jar包以及其他所有依赖涵盖。当然也可以用其他打包方式

    	<build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <descriptorRefs>   
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass></mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    

    (二)、库文件导入,及相对路径导入

    如果你只是在当前电脑用这个项目,那配置 /etc/ld.so.conf 即系统默认so文件加载路径,是一种很便捷的方式。(这个只需要在文件末尾添加库文件及库文件里面的HCNetSDKCom的绝对路径)
    但是如果想要将项目打包,则需要按照以下方法(网上别的文章绝对没有的方法):
    先将整个库文件放在resources目录下的lib里面,像这样
    在这里插入图片描述说一下为什么放这儿。没有为什么,放其他地方也可以,只不过放在这里待会打包过后这个文件夹就会出现在jar包里面的最外层目录,很容易找到。

    添加一个获取加载路径的方法:

    import java.io.UnsupportedEncodingException;
    
    /**
     * @Author ws
     * @Date 2019/03/05
     */
    public class Hkpath {
        // 库文件目录
        public static String DLL_PATH;
        static {
            String path = (Hkpath.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1);
            String[] p = path.split("/");
            StringBuilder pa = new StringBuilder();
            for (int i=0;i<p.length-2;i++){
                pa.append("/");
                pa.append(p[i]);
            }
            pa.append("/src/main/resources/lib");
            path = pa.toString();
            try {
                DLL_PATH = java.net.URLDecoder.decode(path, "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    }
    

    再修改HCNetSDK.java里面加载库文件这段代码:

    //修改之前
    HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary( "hcnetsdk", HCNetSDK.class);
    //修改之后
    String path = System.getProperty("user.name").equals("你自己的用户名") ?
                Hkpath.DLL_PATH + "/libhcnetsdk.so" : System.getProperty("user.dir") + "/libhcnetsdk.so";
        HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary(path, HCNetSDK.class);
    

    目的是判断这是不是在你自己电脑上运行的,因为在其他地方运行jar包时路径是不一样的。(额刚刚想到,如果你在自己电脑上运行这个jar包这里应该会报错…
    这样就可以加载到了。
    什么?失败了?错误码是107加载预览组件失败?那继续下面的步骤
    新建一个方法

    import lombok.extern.slf4j.Slf4j;
    import java.io.*;
    import java.net.JarURLConnection;
    import java.net.URL;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Enumeration;
    import java.util.Objects;
    import java.util.jar.JarEntry;
    import java.util.jar.JarFile;
    
    
    /**
     * @Author ws
     * @Date 2019/03/11
     */
    @Slf4j
    public class CopyDirectory {
        String url1 = System.getProperty("user.dir");
        // 拷贝普通文件
        public void copy() throws IOException {
            //String url1 = Hkpath.SO_PATH;
            String url1 = Objects.requireNonNull(this.getClass().getClassLoader().getResource("lib")).getPath();
            String url2 = System.getProperty("user.dir");
            copy(url1, url2);
        }
        // 拷贝jar文件里面的东西
        public void copy2Natives() throws IOException {
            File hcfile = new File(url1 + File.separator + "HCNetSDKCom");
            if (!hcfile.exists()) {
                hcfile.mkdirs();
            }
             URL url = this.getClass().getClassLoader().getResource("lib");
            assert url != null;
            Path nativePath = Paths.get(url1);
            if (!Files.exists(nativePath)) {
                Files.createDirectories(nativePath);
            }
            if (url.toString().contains("!/")) {
                String jarPath = url.toString().substring(0, url.toString().indexOf("!/") + 2);
                URL jarUrl = new URL(jarPath);
                JarURLConnection jarCon = (JarURLConnection) jarUrl.openConnection();
                JarFile jarFile = jarCon.getJarFile();
                Enumeration<JarEntry> jarEntrys = jarFile.entries();
                final String filePref = "lib";
                while (jarEntrys.hasMoreElements()) {
                    JarEntry entry = jarEntrys.nextElement();
                    String name = entry.getName();
                    if (name.startsWith(filePref) && !entry.isDirectory()) {
                        String fileName = name.substring(filePref.length());
                        Path destFile = Paths.get(nativePath.toAbsolutePath().toString() + File.separator + fileName);
                        if (!Files.exists(destFile)) {
                            //不存在就复制
                          Files.copy(Objects.requireNonNull(this.getClass().getClassLoader().getResourceAsStream(name)), destFile);
                        }
                    }
                }
            }
        }
    
        // url1源文件夹
        // url2目标文件夹
        // 文件夹最后不加斜杠
        public void copy(String url1, String url2) throws IOException {
            // 创建目标文件夹
            File file2 = new File(url2);
            if (!file2.exists()) {
                file2.mkdirs();
            }
            // 获取源文件夹当前下的文件或目录
            File[] file = (new File(url1)).listFiles();
            for (int i = 0; i < file.length; i++) {
                if (file[i].isFile()) {
                    // 复制文件
                    copyFile(file[i], new File(url2 + File.separator + file[i].getName()));
                }
                if (file[i].isDirectory()) {
                    // 复制目录
                    String targetDir = url2 + File.separator + file[i].getName();
                    String sourceDir = url1 + File.separator + file[i].getName();
                    copy(sourceDir, targetDir);
                }
            }
        }
    
        // 复制文件
        public static void copyFile(File sourceFile, File targetFile)
                throws IOException {
            // 新建文件输入流并对它进行缓冲
            FileInputStream input = new FileInputStream(sourceFile);
            BufferedInputStream inBuff = new BufferedInputStream(input);
    
            // 新建文件输出流并对它进行缓冲
            FileOutputStream output = new FileOutputStream(targetFile);
            BufferedOutputStream outBuff = new BufferedOutputStream(output);
    
            // 缓冲数组
            byte[] b = new byte[1024 * 5];
            int len;
            while ((len = inBuff.read(b)) != -1) {
                outBuff.write(b, 0, len);
            }
            // 刷新此缓冲的输出流
            outBuff.flush();
    
            //关闭流
            inBuff.close();
            outBuff.close();
            output.close();
            input.close();
        }
    }
    

    再在你海康初始化之前加入这样的代码

    // 复制库文件
            try {
                if (System.getProperty("user.name").equals("自己的用户名")){
                    (new CopyDirectory()).copy();
                }else{
                    (new CopyDirectory()).copy2Natives();
                }
            } catch (IOException e) {
                log.info("Copy .so files failed.", e);
            }
    

    如果运行jar包时提示加载类错误。也就是
    java.lang.NoClassDefFoundError: Could not initialize class xxx.HCNetSDK
    这个的意思就是打包之前还可以加载到 HCNetSDK.java这个类的,但是打包过后在类路径(class path 里面就加载不到HCNetSDK.class了。具体原因我也不太明白,不过既然找不到路径,那我们帮它找到不就好了。所以再添加下面一段

     System.setProperty("java.class.path",
                    System.getProperty("java.class.path") +
                            System.getProperty("path.separator") +
    Objects.requireNonNull(this.getClass().getClassLoader().getResource("com")).getPath());
    

    那为什么要复制库文件出去呢?
    因为如果不复制一下库文件,报错信息会提示你【.//HKNetSDKCom/libCPreview.so】加载失败了,错误码107,预览组件加载失败。而其中的 ./就是项目根目录的意思,意思就是它还是从根目录获取这个文件夹里面的so文件了。我们之前配置的对这个文件目录下的so文件没起作用,而这个复制文件就是将库文件全部复制到了它能找到的地方。这样也能避免jar包在不同地方引用的时候库文件加载路径不尽相同的问题。

    如果是错误码47,用户不存在,则参考我另一篇文章
    https://blog.csdn.net/qq_41789316/article/details/88391031

    先这样,还有什么坑的话之后再加。毕竟我倒腾两周了已经…

    展开全文
  • java面试题典 java 面试题 经典

    热门讨论 2010-06-18 13:42:36
    第一部分 笔试题(问题) 7 一、 java基础 7 ... 用JAVA写一个多线程程序,如四个线程,二个加1,二个对一个变量减一,输出。 51 11. ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三...
  • 使用JAVA开发CORBA应用 使用JSP读取客户端信息 使用servlet和jsp上载文件 试验win2k在apache1.3上配置tomcat3.1 数据类型对软件性能的影响 提高Java代码可重用性的三个措施 通过socket访问数据库 通用数据库...
  • java面试宝典2012

    2012-12-16 20:43:41
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 137 19、Jdo是什么? 137 20、什么是spring的IOC AOP 137 21、STRUTS的工作流程! 137 22、spring 与EJB的区别!! 137 八. ...
  • JAVA面试宝典2010

    2011-12-20 16:13:24
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • Java面试宝典-经典

    2015-03-28 21:44:36
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • Java面试宝典2012版

    2012-12-03 21:57:42
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 ...
  • Java面试宝典2012新版

    2012-06-26 19:20:00
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • Java面试笔试资料大全

    热门讨论 2011-07-22 14:33:56
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 19、Jdo是什么? 20、什么是spring的IOC AOP 21、STRUTS的工作流程! 22、spring 与EJB的区别!! 八. 软件工程与设计...
  • java 面试题 总结

    2009-09-16 08:45:34
    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...
  • java基础题 很全面

    2009-05-09 09:24:24
    2. 我们在web应用开发过程经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 30 3. 请问输出什么,为什么? 30 4. 编程题: 一个Singleton出来。 31 5. 设计4个线程,其中两个线程每次对j...
  • java常用工具类的使用

    热门讨论 2012-03-19 20:11:37
    Java开发类库,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...
  • Java 面试宝典

    2013-02-01 10:02:08
    1、一个".java"源文件是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? .......................................................................................................
  • 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  • 给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...
  •   在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果...
  • 1、一个".java"源文件是否可以包括多个类(不是内部类)?有什么限制?.....2 2、Java有没有goto?..........................................................................................2 3、说说&和&&...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...
  • •jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 •jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来...
  • 亮剑.NET_图解C#开发实战_源码完整版

    热门讨论 2013-02-05 18:04:47
     16.2.3 C#Word文档转PDF文档的  16.2.3 方法  16.2.4 如何在窗体间数据传递  16.3 编程实现  16.3.1 窗体设计  16.3.2 程序设计  16.3.3 运行效果  16.4 本章小结  第17章 ASP.NET程序——新闻...
  • 是现在最流行的多媒体手机开发平台,您现在手的国产手机就很有可能是用它做的的哦(连上电脑USB,弹出 MT6226就是这个平台)他包含MP3,MP4,蓝牙等模块。 通过这 个光盘的资料,您可以建立一个PC端的模拟开发环境...
  • 阿里JAVA开发规约插件 最新最全面在线文档 第一时间更新,文档永不收费 https://www.kancloud.cn/exrick/xboot/content 本地运行部署 安装依赖并启动:Redis、Elasticsearch(当配置使用ES记录日志时需要) ...
  • 3.2.3 SDK文档及阅读技巧 27 3.2.4 先来热热身——Android SDK例子解析 28 3.2.5 SDK提供的工具介绍 31 3.3 Android典型包分析 33 3.3.1 开发的基石——AndroidAPI核心开发包介绍 33 3.3.2 拓展开发外延——...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 171
精华内容 68
关键字:

java开发中说明文档怎么写

java 订阅