- 博客(38)
- 收藏
- 关注
原创 eclipse插件开发(二)RCP第三方库的引入方式
最近在RCP开发过程中遇到JSON串与对象互转的问题,如何像spring开发模式一样引入第三方库呢?eclipse插件开发中用到p2库,但也支持maven库的引入。关键在于.target这个关键文件。
2024-06-07 18:03:01
371
原创 eclipse插件开发(一)
学习eclipse插件开发,首先需明确几个高频的概念,先说说何为插件及一些插件的封装、马甲。插件是实际包含功能实现的软件模块,而特征则是为了方便分发和管理这些插件而创建的更高层次的组织单元(可以理解成对插件的封装)。,它定义了插件的元数据,包括插件的ID、名称、版本、扩展点(extensions points)和扩展(extensions)等,是插件运行所必需的信息。特征是对一组相关插件的更高层次的组织方式,它代表了一组可以一起下载和安装的功能集合。特征是为了简化最终用户的安装和管理过程而设计的。
2024-05-10 17:27:31
266
原创 4diacIDE同时编译不同版本踩坑记录
4diac不同版本依赖插件版本及jdk版本是不同的,当你需要搭建不同版本4diacIDE开发环境时,就会出现各种问题。1、首先由于.target依赖的eclipse插件版本不一致,而一般一个eclipse环境对于同一插件只会安装一个版本(多个版本共存的情况,我想象不到)。因此你需要安装多个eclipse。3、同样是buildExtraJAR.xml中配置,在我搭建开发环境中出现了路径与源码根路径不一致的情况,导致编译失败(找不到****/.bnundle_pool),修改该配置即可。
2024-05-08 10:20:29
419
1
原创 4diac源码编译
step 1:eclipse官网下载eclipse installerEclipse Downloads | The Eclipse Foundationstep 2:选择Eclipse Modeling Tools安装step 3:Windows-preference搜索api,选结果中的Api Baselines,设置选项missing api baseline为ignore。step 4:help-install new software 输入Eclipse Repository - http
2024-04-08 14:17:55
387
原创 https证书的坑:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
Google浏览器访问目标地址,例如https://download.eclipse.org/eclipse/updates/4.15/执行,此处我待安装证书保存位置为c盘,目标位置为jdk8目录下的cacerts。这个报错搞了好久,试了N种办法,还是直接安装证书比较靠谱省事。再次启动eclipse,下载插件成功。看到证书已添加则表明安装成功。是否信任此证书,输入Y。
2023-04-26 10:29:13
214
原创 我学设计模式之枚举实现单例模式说明
之前书上看到枚举实现单例模式,没用过,真正用的时候发现很多好处,记录一下。利用枚举实现单例,每个枚举量都是枚举类的一个对象,即。
2023-03-10 16:48:11
114
原创 局域网内共享VMware下Ubuntu虚拟机服务
共享VMware下Ubuntu虚拟机一、配置ubuntu1~20.04VMware 16.1.0二、桥接模式默认NAT宿主机与虚拟机能互通,但局域网内其他物理机无法与虚拟机交互(虚拟机能ping通,但物理机无法ping通虚拟机,即访问不了我的虚拟机服务)。自己是这方面的小白,于是参考了网上各路大牛的配置。总结了一个最简单、友好的配置分享给大家。2.1 虚拟机设置虚拟机》设置》网络适配器,选桥接模式,勾选复制物理网络连接状态。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上
2021-12-30 10:25:52
1012
原创 Sonar+cppCheck+cxxPlugin:实现C++检索
Sonar+cppCheck+cxxPlugin:实现C++检索一、配置清单openjdk11sonarqube-7.6(用9.2版,在新增cxx插件后启动报错,遂改用此版本)SonarQube Scanner 4.2.0.1873cppcheck-2.6sonar-cxx-plugin-1.3.2.1853二、sonarqube服务器安装sonarqube服务器安装较为简单,只需下载解压后(注意各版本对应的jdk版本),到对应操作系统下执行启动脚本即可启动服务。官网地址:https:/
2021-12-30 09:49:16
2724
2
原创 拉丁方阵-JAVA
LatinSquare拉丁方阵JAVA解问题介绍解问题介绍传送门n阶方阵中,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次。解应用循环列表,不断移动头节点位置构造方阵的行(使每个元素错开输出),移动n-1次。循环列表实现:(此处仅实现初始化)public class CircleList { public Node headNode; public int listLength; public CircleList(int length) {
2021-08-12 10:39:26
439
原创 约瑟夫环问题--Java解
问题描述:传送门哈哈,拥有智慧的人总是能笑到最后。一起向他学习吧。大致描述就是41个人,从第一个开始报数,谁报到3就原地爆炸,下一个继续从1开始数,如此往复。解:约瑟夫环可以看作一个单向循环列表,从头节点开始,把第三个节点删除,并将下一个节点作为头节点,如此往复,就可打印出爆炸顺序。上代码public class JosephCircle { //定义 static class Node{ int data; Node nextNode; }
2021-08-09 21:25:13
258
原创 QT压缩/解压之quazip
欢迎使用quazip项目涉及文件传输,发送前压缩,发送后解压,此为背景。在查了N多资料,都大同小异,用的动态库方式。其中只有一篇文章讲解的是静态库方式,及其方便,及其舒适。看了quazip包跟dll其实都差不多大了。果断用了该博主的方式。原文[> 在QT 5.15中使用quazip库进行静态编译链接感谢博主。下载quaziphttps://github.com/stachenov/quazip引入quazip1、解压quazip包,将解压后的文件夹直接复制至项目中。2、打开.pro
2021-07-13 19:41:41
281
原创 Java源码粗读之HashMap
目录MapHashMapHashMap基础属性构造方法Add方法Get方法Remove方法LinkedList基础属性构造方法Add方法Get方法Remove方法总结ArrayListLinkedListMap• HashMap底层jdk1.7及之前版本:数组+链表;之后:数组+链表+红黑树;本文主要描述1.8版本源码。HashMapHashMap基础属性/** * table数组默认大小. */ static final int DEFAULT_INITIAL_
2021-03-06 12:47:00
131
原创 Field * doesn‘t have a default value问题
1、主键没有设置自动递增;2、误操作drop default了,alter table XXX ALTER COLUMN XXXXX set default null;
2021-03-05 10:10:30
1066
1
原创 Java集合源码粗读:ArrayList
目录集合ArrayListArrayList基础属性构造方法Add方法集合• ArrayList底层就是一个长度可以动态增长的Object数组;基础属性:ArrayListArrayList基础属性/** * Default initial capacity.默认数组大小 */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used
2021-02-06 20:52:37
134
原创 每天一条EffectiveJava:用私有构造器或枚举类型强化Singleton属性
不积跬步无以至千里,不积小流无以成江海。Singleton是指仅仅被实例化一次的类。Singleton通常会被用来本质上唯一的系统组件,比如窗口管理器或者文件系统。实现Singleton的两种方法,这两种方法都要把构造器保持为私有的,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例。在第一种方法(饿汉式)中,公有静态成员是个final域://Singleton with public final fieldpublic class Elvis { public static fin
2020-12-01 22:41:51
108
原创 一天一条effective Java:遇到多个构造器参数时考虑用构建器
亡羊补牢,未为迟也。当我们遇到参数较多的构造器时,可考虑Builder模式。将众多参数分为必要参数和可选参数,如此既解决了构建对象时必须填写可选参数的问题,同时使得程序更具可读性。当然,你说可以重载构造器,提供多种构造方法,但当其他人想创建对象时,可能会一脸懵,我应该用哪个?我们用的更多的是JavaBean模式,调用无参构造器创建对象,然后setter属性值,这种方式构建简单且易读,但将对象的构建拆分成为不同的过程中,可能会导致线程安全性问题。因此有了该条建议:使用Builder模式。下边是Bu
2020-11-30 22:41:04
133
1
原创 一天一条EffectiveJava:考虑用静态工厂方法代替构造器
此处的静态工厂方法有别于设计模式中的工厂模式:泛指能够返回类的一个实例的静态方法。例如Boolean的valueOf方法: /** * The {@code Boolean} object corresponding to the primitive * value {@code true}. */ public static final Boolean TRUE = new Boolean(true); /** * The {@code Bool
2020-10-19 20:41:05
121
原创 dmp包导入(备份还原)的常用姿势
导入(备份还原)最干净的方式是先把dmp归属用户删除,再重新创建用户:drop user usernameXXX cascade;create user username identified by passwordXXX default tablespace XXXXX;grant dba to usernameXXX;imp usernameXXX/passwordXXX@ip/orcl file=D:\DB_20200907.dmp full=y ignore=y;(如果本地安装有Oracl
2020-10-02 09:23:32
727
原创 Mybatis模糊查询like实现
方式一、‘%${param}%’无法防止sql注入。方式二、concat拼接%如:param like concat(’%’, #{param}, ‘%’)方式三、and t.pramA like #{pramA, jdbcType=VARCHAR}推荐使用方式三。
2020-09-28 20:53:15
122
原创 Oracle自动备份数据库
备份脚本:export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/12c/export ORACLE_SID=orclexport ORACLE_TERM=xtermexport PATH=$ORACLE_HOME/bin:$HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport LANG=Cexport NLS_LANG=A
2020-08-03 19:00:15
186
原创 Mybatis传参为逗号分隔的字符串情形进行in条件查询
在业务变更需支持多条件查询,在改动最小的情况下,实现方式就是只改mapper.xml,这时,可让前端逗号分隔传参,后端只需要做如下调整:<if test="paramXXX!= null and paramXXX!= ''"> and t.paramXXX in <foreach item="item" index="index" collection="paramXXX.split(',')" open="(" separator="," close=")">
2020-08-01 12:54:44
4612
原创 Mybatis自定义对象出入参
很多情况下我们需要多表操作,逆向工程生成基础的单表操作系列mapper。这时候如果想进行多表操作就需要自定义出入参。mybatis支持resultMap继承,如下<resultMap extends="BaseResultMap" id="UserInfo" type="com.xxx.xxx.UserDTO"> <result column="CREATE_USER_ID" jdbcType="VARCHAR" property="createUserId" />
2020-08-01 12:46:38
710
原创 Mybatis:Oracle批量插入,foreach方式正确姿势
网上常见的介绍:<insert id="batchInsert" parameterType="java.util.List"> INSERT INTO TEST_TABLE( CODE, REMARK )( <foreach collection="list" item="dataList" index="index" separator="union all" > SELECT #{dataList.code,jdbcType=VARCHAR
2020-07-09 21:36:17
603
原创 SVN任何一层update、clean都失败,报副本被锁定
网上看了博文,都说可以一层层clean即可解决,我遇到的情况不一样,一层层往外clean都是失败,也无法更新。按照提示类似:.svn,xxx无法移动到xxx里。所以想到是不是因为服务占用这个资源,svn又想去改变这个资源而导致锁的情况。所以尝试把服务停掉,停掉之后再update,问题就解决了。...
2020-06-16 18:42:06
227
原创 plsql快捷键失效的处理方法
一、单独按键F8无反应,但Fn+F8组合有效把Fn键重新锁定就行了:Fn+shift,Fn键会常亮。这时按F8就可了。二、键设置还原如果按Fn+快捷键组合都无效,那还原一下快捷键设置,
2020-06-08 16:09:21
5262
原创 JAVA反编译工具:javap、jadclipse、jad.exe以及jd-gui
一、jdk自带的javap使用体验:先执行javac *.java将源代码编译生产class(由于依赖关系,单个java文件编译可能会报错)。cd到该目录下,javap -c 文件名(不要带.class后缀)即可查看到反编译后的文件内容,类似public class design.method.proxyPattern.DynamicIntermediar extends java.lang.Object implements java.lang.reflect.InvocationHandler{
2020-06-08 10:20:35
465
原创 oracle语句中如何把某一列的值合并为一个值,用逗号隔开
直接用listagg,select listagg(c_email, ‘,’) within group( order by c_email) as c_email from user.
2020-05-06 20:36:11
449
原创 我学设计模式之工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式
一、工厂模式诞生背景艺术源于生活,技术亦是。不管是艺术,还是技术,都是人们的思想产物。生活中,我们使用(吃喝住行)的绝大部分事物都不是我们自己亲手制造的,而是由工厂批量制作出来,我们直接使用成品(或自己组装成成品),我们并不需要知道这些事物的制作细节。设想一下,如果我们使用的每一样事物都需要我们自己制作出来,这是多么恐怖的一件事情!同样,在代码世界里,调用者使用的每一个对象都要自己创建出来,...
2020-04-09 22:02:29
170
原创 软件架构设计原则整理
Single Responsibility Principle:单一职责原则Open Closed Principle:开闭原则Liskov Substitution Principle:里氏替换原则Law of Demeter:迪米特法则Interface Segregation Principle:接口隔离原则Dependence Inversion Principle:依赖倒置原则...
2020-04-07 19:36:59
237
原创 监听文档是否已做好下载准备
一、背景业务需求:做文档的批量下载功能,排查代码后发现后端已支持该功能。啪啪啪三下做了个按钮,调了一下后端逻辑,下载文档较大的时候,后端下载和压缩期间,页面啥提示都没有。因此想在这期间做一个提示,并把下载按钮禁用掉。二、调研由于本人小白,所以查了很多资料,许多博客提到用iframe,总结一下这些方案:1、前后端配合的方式,后端将文件下载进度放在cookie中,通过轮询cookie的方式,...
2020-02-12 10:44:27
241
原创 正向代理和反向代理的理解
何为方向首先方向是怎么的来的,为啥要用方向去区别?我理解的正向、反向的参照物是请求的来源。所谓正向,是由请求方主动要求代理,反向是指请求方被动接受代理。举个栗子:正向代理:你想租房,但又找不到理想的房源,于是你主动去找中介,中介根据你的需求从手里的大把房源中为你找到了合适的房子。反向代理:你又想租房了,这次你恰好找到了一个理想的房子,你租下了,还特别开心,然而你并不知道,租给你这个...
2020-01-15 16:30:22
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人