
java
文章平均质量分 51
java编程
凌飞安
点关注不迷路,大家好,我是凌飞安,一个专注于Java研发的程序猿。
展开
-
【在Centos服务器应用tess4j实现ORC图片识别】
Tesseract-OCR支持多语言识别(需要引入响应的语言库),并且开源和提供全套的训练工具,是快速低成本开发的首选。Tess4J是Tesseract在Java PC上的应用。在英文和数字识别中效果还是相当不错的,在中文识别中,无论速度还是识别率还是较弱,如果有条件可以针对场景进行训练,会获得较好结果。tess4j对win的支持度很高,不需要额外的安装其他插件。但是我们多数应用服务都是部署在linux服务器中,本文就是针对这需求,重点讲解如何在centos服务器使用tess4j进行orc识别。......原创 2022-08-05 10:09:57 · 1329 阅读 · 0 评论 -
fastjson实体转换异常问题
com.alibaba.fastjson转实体遇到的一个大坑问题描述问题原因解决方案问题描述项目中使用fastjson将json字符串转换为对应的实体,某天因为业务需要,实体需要增加两个属性,然后就出问题了,具体的错误日记如下所示 at java.awt.EventDispatchThread.run(Unknown Source)Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: com/alibaba/fas原创 2020-09-14 18:26:21 · 1864 阅读 · 0 评论 -
java使用http协议将文件同步到另外一台服务器
java使用http协议将文件同步到另外一台服务器需求背景核心代码需求背景我们在美国服务器上部署了一个site,专门提供美国用户使用,后端服务和文件服务都放在国内。用户经常抱怨我们系统打开文件比较缓慢深圳打不开。我们经过测试发现,一般的service查询在速度上都还是可以接受的,但是一些较大的文件,就会响应比较慢甚至出现打开失败的情况。这是由于跨洲网络出现丢包的现象导致的。我们最初想到的方案...原创 2020-03-26 10:07:30 · 3700 阅读 · 0 评论 -
linux自动解压式安装java
linux自动解压式安装java创建目录下载压缩包解压JDK设置环境变量验证安装安装java比较快捷的方式是通过yum的apt-get来安装,但是openJdk类库并不是全量的,安装后可能会出现意料之外的错误,所以我建议通过解压的方式来安装。创建目录在/usr/local下创建java目录mkdir /usr/local/java进入到java目录下 ,通过wget方式下载安装包,下载...原创 2020-03-01 16:26:38 · 854 阅读 · 0 评论 -
在win系统后台执行SpringBoot生成的jar文件
在win系统后台执行SpringBoot生成的jar文件问题描述解决方案问题描述在多数时候我们的服务器使用的是linux,我们只需要使用 nohup 命令就可以实现后台运行jar包。但有时候事情并不如你所期待的那般,有时候你只能在win服务器部署你的springboot服务。如何在win服务器执行jar包,相信很多小伙伴都知道,打开cmd命令窗口执行以下代码即可运行你的jar程序包(***...原创 2019-12-19 20:01:03 · 1504 阅读 · 2 评论 -
LocalDate和LocalDateTime日期格式化
LocalDate和LocalDateTime日期格式化废话少说,直接上代码废话少说,直接上代码 public static void main(String[] args) throws Exception { LocalDate curDay = LocalDate.now(); DateTimeFormatter formatter = DateTi...原创 2019-12-11 11:10:26 · 5482 阅读 · 0 评论 -
java实现全角和半角之间的转换
java实现全角和半角之间的转换代码实现最近网站引入了一些日文的资料,发现日文提供的资料是阿拉伯数字和一些字符竟然是全角,全角字符我们想要读取里面的信息会变得比较被动,所以要求在保存之前,将资料转换成我们常用的半角方式存储。全角字符显示:(220)【出願日】 令和1年11月20日(2019.11.20)我需要获取到字符里面的日期,就只能现在全角字符转换为半角,效果如下所示,这样我就可通过...原创 2019-12-10 17:47:31 · 2621 阅读 · 0 评论 -
Java 如何遍历enum类型
Java 如何遍历enum类型java 如何遍历enum类型java 如何遍历enum类型遍历enum我们可以使用enum自带的静态方法values(),来实现,具体的demo如下所示: public static void main(String[] args) throws Exception { //遍历 for (UserType type : User...原创 2019-12-06 11:59:16 · 2306 阅读 · 0 评论 -
使用java更新word模板文件的内容和图片
使用java更新word模板文件的内容和图片代码实现上一篇博客我实现了更新word模板里面的文字内容,但是,产品经理又有了新的想法,觉得只有文字的word文档看起来比较单调,需要穿插一些图片,师文字看起来更丰富多彩。代码实现模板的定义我们参考上一篇文章:https://blog.youkuaiyun.com/lingfeian/article/details/103309379以下代码就是我们实现该...原创 2019-12-03 15:41:55 · 521 阅读 · 0 评论 -
使用java poi 替换word模板里面的内容
使用java poi 替换word模板里面的内容需求背景功能实现对模板进一步加工,方便我们程序处理java代码验证需求背景业务提供了一个word的签名模板,要求根据订单内容替换模板中的关键信息,需要替换的内容已明确。功能实现对模板进一步加工,方便我们程序处理第一步,我们需要做的就是对模板进行进一步加工处理,将替换的内容使用固定的标签标志。如下图所示(使用${}来声明关键词的原因是为...原创 2019-11-29 14:04:03 · 3935 阅读 · 4 评论 -
替换PDF中的敏感信息
替换PDF中的敏感信息FTP文档中有敏感信息不能显示给客户,之前我采用的是覆盖的方法,但后来发现,那不过是掩耳盗铃,通过覆盖的方法只是在文字表面加了一层遮羞布,一样可以通过搜索和copy获取到我们要加密的内容。在上一篇博客中,我通过将pdf转为图片之后再转回pdf曲线救国的方式实现了业务需求。但是今天有一个客户提出新的要求,对方要求pdf不能是图片的方式,因为对方还需要对pdf进行编辑,如果...原创 2019-10-24 14:29:58 · 3745 阅读 · 3 评论 -
Java使用*字符将敏感信息隐藏
Java使用*字符将敏感信息隐藏在一些业务场景,我们需要对客户的手机号、邮箱等敏感信息进行隐藏。通常情况下是使用*字符替换原有的字符。以达到加密的目的。/** * @author FeianLing * @date 2019/10/23 * 对字符串敏感信息加密, */public class StringEncryptUtil { private static final ...原创 2019-10-23 11:35:32 · 1825 阅读 · 0 评论 -
将pdf文档转换成高清图片
将pdf文档转换成高清图片关于pdf转换成高清图片,网上有不少资料,但测试过后发现多数不可用,甚至出现pdf图片格式错乱等问题。以下pdf转高清图片核心代码是经过本人验证并应用与实践项目的。请惠存! File file = new File(pdfPath); PDDocument pdDocument; try { pdDocume...原创 2019-10-19 09:35:40 · 2902 阅读 · 1 评论 -
将pdf转换成图片在转换回pdf文件
将pdf转换成图片在转换回pdf文件之所有要这么做主要是曲线解决pdf文本内容增加覆盖层后依然可以复制出来的问题。查了不少资料发现通过覆盖层的方式并不能去除原有的文字内容,只是达到了掩耳盗铃的效果而已。于是我们打算将加密后的pdf文件转换成图片在转换会pdf,通过这样的方式达到我们需要的效果。pdf转图片的过程中遇到了几个问题?图片清晰度问题?图片内容失真问题?为了解决第一个问题,我在...原创 2019-10-18 15:30:54 · 445 阅读 · 0 评论 -
File删除文件delete()和deleteOnExit()的区别
File删除文件delete和deleteOnExit的区别File中提供了两个删除文件的方法,即delte()和deleteOnExit()。他们之间的区别在哪里呢?让我们先看一下,这两个方法对应的源码:delete: public boolean delete() { SecurityManager security = System.getSecurityManage...原创 2019-10-16 17:36:34 · 2646 阅读 · 0 评论 -
SpringBoot使用QQ邮箱发送包含附件的邮件
SpringBoot使用QQ邮箱发送包含附件的邮件maven配置properties文件配置java代码我们话不多说,直接上代码maven配置因为我们使用的是freemarker对html模板文件进行格式化,所以需要而外引入freemarker的jar。 <dependency> <groupId>org.springframew...原创 2019-07-22 23:21:51 · 343 阅读 · 0 评论 -
记JavaMail判断邮件是否已读的坑
记JavaMail判断邮件是否已读的坑使用JavaMail实现监控邮箱重要邮件并获取附件保存到服务器,在做这个功能的时候遇到一个大坑,就是在判断邮件是否已读的时候,在网上看到很多例子,都是通过msg.getFlags()方法获取到全部的Flag之后再遍历判断是否包含Flags.Flag.SEEN属性,这个方法经过验证是失败的,我将这个getFlags的数据打印出来发现都是空集合。这其中肯定有b...原创 2019-08-26 10:39:24 · 4244 阅读 · 5 评论 -
使用iText对pdf中敏感信息进行马赛克处理
使用iText对pdf中敏感信息进行马赛克处理需求背景实现逻辑实现代码定位敏感词坐标对敏感信息进行马赛克敏感信息实体类需求背景系统需要发送部分pdf文件给客户,但是原pdf中有部分敏感信息需要进行屏蔽。实现逻辑定位敏感信息在pdf中的位置。覆盖敏感信息将处理后的文件发送给客户实现代码定位敏感词坐标通过监听pdf渲染过程,获取敏感词的坐标信息 //查找所有敏感词的坐标 ...原创 2019-08-22 16:15:26 · 4084 阅读 · 3 评论 -
mybatis 异常:Parameter 'id' not found. Available parameters are
mybatis 异常:Parameter 'id' not found. Available parameters are错误代码异常日记问题原因解决方法错误代码下班前发现同事提交代码报错,错误代码如下所示sql <insert id="addUsTmApplication" keyProperty="id" useGeneratedKeys="true"> ...原创 2019-08-15 19:30:51 · 30867 阅读 · 5 评论 -
Java 生成文字图片
Java 生成文字图片使用java生成指定字体的图片。具体的代码如下所示,代码中部分参数是针对英文字母设定的,如果是使用中文或者其他语言,请自行调整。 // 64 size 的值 大写宽度为40.5 我们取值稍大一点 int width = (keyword.length() + 1) * 45; if (width < ImageAttachmentS...原创 2019-08-15 16:25:26 · 866 阅读 · 0 评论 -
SMTP、POP3和IMAP协议的区别
SMTP、POP3和IMAP协议的区别SMTPPOP3IMAP总结SMTPSMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服...原创 2019-08-24 15:22:09 · 2498 阅读 · 0 评论 -
使用aspose.words 18.6实现pdf文档转换
使用aspose试问pdf文档转换jar包引入水印处理代码demojar包引入<repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://repository.aspose.com/repo/</u...原创 2019-08-14 16:52:14 · 700 阅读 · 0 评论 -
解决邮件发送错误:503 Error: need EHLO and AUTH first
邮件发送错误:503 Error: need EHLO and AUTH first 问题描述问题原因解决方案问题描述2019-07-21 16:14:00.449 ERROR 9668 — [pool-1-thread-1] c.w.i.c.m.s.i.EmailMessageServiceImpl : Failed messages: com.sun.mail.smtp.SMTPS...原创 2019-07-21 16:44:21 · 30932 阅读 · 5 评论 -
Malformed \uxxxx encoding.异常
这个异常的原因是由于properties文件配置不正确引起的。请检查properties在服务器上的路径是否正确。xception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.Properties]: Factory method ‘quartzProper...原创 2019-08-10 09:46:16 · 2499 阅读 · 0 评论 -
com.itextpdf.text.exceptions.IllegalPdfSyntaxException: Unbalanced begin/end text operators.
com.itextpdf.text.exceptions.IllegalPdfSyntaxException: Unbalanced begin/end text operators.问题描述问题原因解决方案问题描述在使用iText 操作pdf时抛出异常,具体的异常日记如下所示Exception in thread “main” com.itextpdf.text.exceptions.I...原创 2019-08-19 15:53:21 · 4935 阅读 · 4 评论 -
java.lang.NullPointerException: Font and size must be set before writing any text
java.lang.NullPointerException: Font and size must be set before writing any text问题描述问题原因定义字体demo问题描述使用iText操作pdf编辑内容时抛出异常,日记如下所示Exception in thread “main” java.lang.NullPointerException: Font and...原创 2019-08-19 15:47:29 · 1463 阅读 · 1 评论 -
spring+quartz.2.3.0数据库持久化实现
spring+quartz.2.3.0数据库持久化实现maven 配置sql脚本初始化quartz.properties配置quartz工厂配置实现一个简单的任务demo编写一个controller来操作定时任务我们废话不多说,直接上代码。maven 配置第一步我们将需要的jar引入到项目中 <!-- start config quartz--> <dep...原创 2019-08-09 10:47:03 · 3123 阅读 · 7 评论 -
List集合排序Comparable与Comparator实现
Comparable和 Comparator的区别前言需求Comparable 实现Comparator 实现总结前言Comparable和 Comparator有什么区别?相信很多同学在面试过程中会经常遇到这个问题。今天我们就结合实际应用来分析这两个对象的区别。需求我们的集合里存放了一批砖石王老五的资料,我们需要对这个集合进行排序,排序的规则就按照年少多金来进行排序。什么是年少多金?也就...原创 2019-08-01 21:06:59 · 1424 阅读 · 1 评论 -
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker一、开发前准备二、新建项目原文地址提升10倍生产力:IDEA远程一键部署SpringBoot到DockerIDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?一、开发前准备Docker安装可以参考:htt...转载 2019-08-27 11:14:59 · 205 阅读 · 0 评论 -
org.springframework.http.InvalidMediaTypeException: Invalid mime type "application.....
org.springframework.http.InvalidMediaTypeException: Invalid mime type "application/x-www-form-urlencoded charset=UTF-8":问题描述问题原因解决方案问题描述将get请求改为post请求,参数改为body之后,前端调用后台系统报错,错误日记如下所示org.springframe...原创 2019-08-28 11:39:07 · 11865 阅读 · 0 评论 -
Java 二维数初始化方式
Java 二维数初始化方式二维数据初始化二维数据初始化我们常见的二维数据初始化方式有三种方式使用大括号直接赋值(这种情况使用已参数已知,且变量较少的情况)给定二维数据的大小给定第一维数据的大小,第二维数据已经情况变化光说不练假把式,下面我们使用demo验证一下 public static void main(String[] args) { // 直接指定数据的...原创 2019-09-12 16:06:31 · 403 阅读 · 0 评论 -
Stanford下载
Stanford下载下载地址请到官网选择要下载的版本下载地址请到官网https://nlp.stanford.edu/software/segmenter.shtml选择要下载的版本下拉到底下选择需要下载的版本,点击下载即可...原创 2018-11-15 16:57:42 · 363 阅读 · 0 评论 -
作为最新版本的Java SE 13有哪些新特性?
作为最新版本的Java SE 13有哪些新特性?JEP 350 Dynamic CDS ArchivingJEP 351 ZGC Uncommit Unused MemoryJEP 353 Reimplement the Legacy Socket APIJEP 354 Switch Expressions (Preview)JEP 355 Text Blocks (Preview)Java S...原创 2019-09-29 14:50:42 · 2093 阅读 · 0 评论 -
有了LocalDate和LocalTime,你还在傻傻的使用Calendar或Date来计算日期么?
有了LocalDate和LocalTime,你还在傻傻的使用Calendar或Date来计算日期么?LocalDateLocalTime日期+时间组合在jdk1.7以前,我们只能使用Date、Calendar来处理日期类的需求,在jkd1.8以后我们多了一个选择,那就是LocalDate和LocalTime。不得不说新引入的两个api太方便实用了。下面我来介绍一下这两个类中常用方法的用法。L...原创 2019-09-27 14:48:41 · 1494 阅读 · 2 评论 -
Maven编译时提示编码GBK的不可映射字符
Maven编译时提示编码GBK的不可映射字符出现这个错误的原因是中文系统编译时默认使用的是GBK编码模式,我们只需指定编码为UTF-8模式即可解决问题。如下图 ecnoding 指定为utf8即可<build> <plugins> <plugin> <groupId>org...原创 2019-09-24 18:46:54 · 293 阅读 · 0 评论 -
偶遇String.trim()方法去不掉的空格
偶遇String.trim方法去不掉的空格在一次项目中,发现客户录入的字符串前部分有空格,自以为是的调用String.trim()方法去掉空格,运行结果一看,打脸了。原因是空格并不是全角的,调用trim()方法并不能去掉字符串收尾的空格。于是我只能重新自己写一个trim方法来去除字符串中的空格。希望这段的艾玛对你有帮助。 public String trim(String s) { ...原创 2019-09-20 11:00:53 · 1912 阅读 · 0 评论 -
java获取本机物理地址
java获取本机物理地址闲话少说,代码如下 /** * @param * @return java.lang.String * @author FeianLing * @date 2019/9/19 * @desc 获取设备物理地址 */ public static String getMacAddress() { ...原创 2019-09-19 14:41:33 · 786 阅读 · 0 评论 -
Java中File类中getPath,getAbsolutePath,getCanonicalPath方法区别
Java中File类中getPath,getAbsolutePath,getCanonicalPath方法区别getPathgetAbsolutePathgetCanonicalPathgetPath官费注解:The string form of this abstract pathnamegetPath返回文件路径的抽象路径,如果你new File使用的是相对路径,那么它返回的就是相对路径...原创 2019-09-19 13:40:57 · 569 阅读 · 0 评论 -
将jar包转换成可执行.exe文件
将jar包转换成可执行.exe文件写在前面的话将jar转换成exe写在前面的话在转换之前需要先到处一个可执行的jar,确保你的程序是正确的。我们需要创建一个文件来存放我们生成的exe文件。在这个文件下面创建三个子文件:jre: 必须,存放程序运行所需的jre环境res:非必须,存放资源类文件files : 非必须 存放临时文件另外我们还需要安装exe4J程序,具体的下载地址自行百度...原创 2019-09-18 17:48:31 · 6457 阅读 · 1 评论 -
Selenium+chrome修改默认文件下载地址
Selenium+chrome修改默认文件下载地址写在前面的话demo写在前面的话使用selenium+chrome的方式爬取网络文件,文件下载默认路径为:C:\Users\user\Downloads。这不利于我们采集和分类,需要修改chrome的默认下载路径。demo HashMap<String, Object> chromePrefs = new HashMap&l...原创 2019-09-18 17:23:18 · 2812 阅读 · 0 评论