- 博客(82)
- 问答 (1)
- 收藏
- 关注
转载 windows开机自启动bat文件
(注:①可以用txt文件编写然后再将.txt后缀修改为.vbs;②“D:\cs.bat ”为文件路径。1、win+R,打开运行,输入“shell:startup”,打开Windows启动文件夹。2、将vbs文件放到“启动”文件夹里(打开启动文件夹步骤同方法一)2、将.bat快捷文件粘贴到Windows启动文件夹中。方法二:编写.vbs脚本放到Windows启动文件夹里。3、重启电脑后,系统自启动.bat文件。3、重启电脑后,系统自启动.bat文件。1、编写.vbs脚本。
2024-09-10 17:54:16
1402
原创 Eclipse中git操作not authorized报错解决
解决办法:eclipse菜单,Window>Preferences>General>Security>Security Storage>Contents>git>delete 即可清除原有密码,再次操作git时会提示输入新密码,重新保存即可。not authorized一般是因为没权限,如果是第一次操作,那多半就是权限没设置好,检查一下就行。如果是一直使用,那可能是密码过期了,或者密码修改过,和eclipse保存的不一致导致。
2024-08-12 11:33:56
473
原创 多个tomcat同时使用 不设置CATALINA_HOME环境变量
通常一台服务器只使用一个tomcat,设置一个CATALINA_HOME的环境变量。但有些时候需要一台服务器启动多个tomcat,那就不能设置CATALINA_HOME了!我们可以在对应tomcat的startup.bat启动脚本中,加入对应的CATALINA_HOME。6.0.20的也是一样。
2024-07-02 15:29:33
351
3
原创 Apache Commons FileUpload 拒绝服务漏洞(CVE-2023-24998)
网上搜索资料得知解决办法是将 Commons FileUpload 升级到 1.5 及以上版本,注意就是fileupload包的升级,可能会导致commons-io包的版本不匹配。我测试了一下,commons-fileupload-1.5和commons-io-2.4应该是没问题的,在这里也提供jar包,有需要的可自行下载。前几天客户委托的第三方软件扫描出漏洞:Apache Commons FileUpload 拒绝服务漏洞(CVE-2023-24998)。
2024-03-28 11:02:19
1879
5
原创 Long.getLong和parseLong的区别
最近项目上有小伙伴在string转long的时候,看到有getLong方法没多思考就使用了。自己写方法的时候名字也尽可能规范点,比如说这个getLong()方法要是叫getSystemPropLong之类的,估计就没这么多人用错了。毕竟jdk也是人写的,总会有不规范的地方。要实现字符串string转换成long,一般是用Long.parseLong(String s) ,大部分情况下性能最优。Long.getLong(String s)方法是获取系统参数,并将系统参数转为Long类型。
2023-07-19 15:53:53
1236
原创 ORA-12704字符集不匹配 问题解决
通过日志发现是一个UNION ALL的连接语句出现的,根据资料发现,UNION ALL用法必须前后两个结果集的字段类型要完全相同才行。由于oracle如果该字段有内容,不能直接修改类型,需要新建个字段把旧数据拷贝过去,再把旧字段的内容清空才能修改类型。最近有客户新上线反馈,查询的时候报错:ORA-12704字符集不匹配。类型修改成一致后,可以正常查询。
2023-04-24 17:05:50
6076
转载 Linux 开启防火墙和指定端口
例: netstat -ntulp |grep 1935 //查看所有1935端口使用情况·–add-port=1935/tcp #添加端口,格式为:端口/通讯协议。netstat -ntlp //查看当前所有tcp端口·–permanent #永久生效,没有此参数重启后失效。–zone #作用域。
2023-04-12 19:12:54
304
原创 失败,因为下列 SET 选项的设置不正确: ‘ARITHABORT‘。请确保 SET 选项正确无误,可以用于 计算列上的索引视图和/或索引和/或筛选的索引和/或查询通知和/或 XML 数据类型方法和/
execute sql error: CREATE INDEX 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'。请确保 SET 选项正确无误,可以用于 计算列上的索引视图和/或索引和/或筛选的索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作。前几天发现sqlserver数据库有几条数据重了,明明设置了唯一索引,为啥呢?解决办法:使用管理员权限执行以下语句即可。执行后重新创建索引,成功创建。
2023-03-28 17:38:55
667
原创 Linux统计java线程状态
Linux系统没有图形界面,用jvisualvm工具监控线程数和状态可能不方便,可以使用jstack命令统计。然后cd到jdk的bin目录,使用jstack命令,目的是生成一个dump。第二列就是进程号,找到相应服务的进程号。首先使用命令获取服务的进程号pid。最后统计dump里面的线程状态。
2023-03-06 10:32:26
721
原创 Linux jmap命令报错:unable to open socket file
网上资料是说可能是权限问题,登录用户和启动服务的用户不一致;或者是/tmp/hsperfdata_$USER目录下面没有pid文件。最后解决:java服务使用了jetty的线程池QueuedThreadPool,该版本线程数最大值是250,后面发现服务把线程数用完了,导致新线程一直无法创建。前几天客户的java服务出问题了,反馈说业务都不能操作,页面也不能登了,像宕机一样。登上Linux服务器一看,服务还在啊,也没内存溢出。可能也因为该原因无法使用jmap和jstack命令,重启服务后一切正常。
2023-03-03 10:22:33
2197
原创 Linux启动tomcat提示Cannot find ./catalina.sh
linux启动tomcat,start.sh之后提示Cannot find ./catalina.sh。解决办法:cd到tomcat的上层目录,对tomcat整个文件夹赋权。成功赋权后,即可正常启动tomcat。出现报错原因:权限不足。
2022-12-27 10:45:38
2010
转载 java过滤 \u、不可见的乱码
由于用户经常从excel,word等乱七八糟的地方copy内容过来,而其中有不可见的字符,导致输出内容看上去是对的,但放到文本编辑工具里发现,其实是多了一个零长度的字符(比如:\u2028,0000200B ZERO WIDTH SPACE),所以需要过滤掉不合法的unicode编码等特殊字符。
2022-11-02 10:30:59
2669
原创 根据jdk32位或64位 启动应用选择不同的内存
由于产品的jdk是免安装版的,即不会写入环境变量,所以稍微有点麻烦。最近做了一个优化需求,要写一个脚本,根据用户环境已安装的jdk是32位还是64位,来启动不同的java-xmx最大内存。linux系统中,即使是32位的jdk1.6,设置成Xmx为2G,也是能正常启动的,所以不需要修改shell脚本。,产品后面升级成64位了,但是还有许多存量客户使用旧的32位的jdk,这时候就需要根据位数来选择不同内存启动了。,通过这种方式来判断产品在运行的jdk的位数。因为产品使用的jdk是1.6,而。
2022-10-31 15:10:27
579
原创 Eclipse git切换分支后 sh脚本文件换行符自动修改的设置
现在很多系统都是windows开发环境,linux运行环境,而git会有一个转换换行符的自动设置,这会导致sh脚本文件经常会自动转换成\r\n,导致部署的时候才发现出错。无论在哪个设置页面,都是把autocrlf属性设置为false即可。这样切换分支的时候就不会自动修改换行符。由于 sh脚本文件在在Linux系统编写时,换行是\n,而在Windows系统编写时,换行是\r\n;所以在Linux中运行脚本时,系统会认为\r是一个真实的字符(不是换行符),导致运行错误。
2022-10-20 14:45:52
861
原创 与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。问题解决
可以看出是在做修改的时候发生的报错,从日志里面分析发现是两个不同的进程对同一张表进行update,但是修改的范围where id是不同的。后面发现问题是因为,该表没有给id设置索引导致,sqlserver如果没有索引默认update的时候会锁整个表,导致该死锁问题。解决方案:给id加上索引或者主键。
2022-10-18 10:26:34
5835
原创 fastjson格式化输出打印
java使用fastjson组装json报文的时候,如果直接.toString()打印出来字符串是很丑的,没有空格和缩进。SerializerFeature也是fastjson包里面的类。这样设置后,打印出来日志输出就会是格式化好的字符串了。
2022-10-14 15:48:38
3286
原创 idea设置类似 Eclipse的outline视图
菜单找到-视图(View)--> 工具窗口(Tool Windows)--> 结构(Structure)eclipse中有个视图叫outline,可以列出所有方法和变量,在一个类很多行数的时候非常有作用。
2022-09-29 19:24:50
1978
转载 linux too many open files解决办法
too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。如果你对你的程序有一定的解的话,应该对程序打开文件数(链接数)上限有一定的估算,如果感觉数字异常,请使用第一步的lsof -p 进程id > openfiles.log命令,获得当前占用句柄的全部详情进行分析。
2022-09-13 10:14:54
4341
原创 PGP加密后密文内容缺少的问题解决
无意中发现,使用的jdk是1.8.0_141,资料有显示说jdk1.8后面的版本有修复什么密钥加密问题,于是让客户更换成1.8.0_201,问题解决了!前几天一个客户反馈,PGP加密后,密文比正常的少了一大截,导致服务端解密失败。虽然更换jdk解决了问题,但是不知道问题的原因是什么……知其然而不知其所以然。(正常应该还有十几二十行密文才对)
2022-08-23 17:16:06
338
转载 Wireshark常用过滤使用方法
过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1端口过滤。如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包协议过滤比较简单,直接在Filter框中直接输入协议名即可,如过
2022-08-13 10:50:16
6178
原创 Comparison method violates its general contract解决办法
查询JDK的资料得知,在JDK1.7开始对Comparator类进行了优化,必须包含3个特性。也就是compare(a,b)>0, compare(b,c)>0, 则compare(a,c)>0。反对称性:如果compare(o1,o2) = 1,则compare(o2, o1)必须返回符号相反的值也就是 -1;自反性:当两个相同的元素相比,compare方法必须返回0,也就是compare(o1, o1) = 0;最近有客户自行升级了系统的JDK版本,原本是1.6的,升到了1.8。...
2022-08-12 11:18:19
1692
原创 com/jowto/agent/AgentBridge报错解决
最后还是坚持搜索有所发现,椒图公司写了篇攻略是怎么修复log4j漏洞的,里面提到了同样的包名com.jowto。又通过天眼查发现,椒图是做守护进程的,360给投资了8000W。那真相就显而易见了,客户最近装了这个椒图的安全软件,当我们的应用启动时它就开始注入搞事情。结果注入之后没多久,它们自己的类初始化失败,把我们的应用搞挂了。这个报错后面还跟随着数据库创建连接失败等报错,所以我们一开始分析方向错误了,搜这个包名和类名没什么资料,又一直在检查数据库连接池、泄露、超时释放等问题,但一无所获。...
2022-07-19 14:08:58
1017
原创 linux $‘\r‘: command not found的解决方法
Linux系统执行Shell脚本,出现了报错:'\r': command not found查阅资料得知,因为脚本在Windows系统编写时,换行是\r\n。而在Linux系统中换行是\n。所以在Linux中运行脚本时,系统会认为\r是一个真实的字符(不是换行符),导致运行错误。解决方法:linux系统的脚本去掉\r,执行以下命令即可(该命令自动重写覆盖):...
2022-06-13 17:14:19
2942
原创 Linux 导出java dump文件
有时候巡检要关注一下系统的运行情况,防止内存使用过多,随时会OOM,这时候需要导出dump文件查看。1、获取java应用的pid输入命令后,找到java应用的pid2、使用jdk的jmp命令导出dump文件如果环境已经配好java环境,可以直接如果没配java环境,那就复制一个jdk文件到linux服务器上,cd到bin目录,然后在命令前面加上./3、导出成功后,一般这个dump文件都挺大的,压缩好再传到windows。用eclipse memory analyzer工具分析,观察内存使用
2022-06-01 11:00:10
4549
原创 CSS失效 Resource interpreted as Stylesheet but transferred with MIME type text/html
前段时间系统从JDK1.6升到了1.8,tomcat也从6.0换到了8.5,但用着用着发现前端样式没了!浏览器点开F12看到控制台输出了Resource interpreted as Stylesheet but transferred with MIME type text/html的报错。奇怪,代码没动,怎么升级就不行。搜索了资料发现,后端如果使用servlet,编码格式是text/html的话,CSS文件会无法解析。猜测可能是tomcat升级的原因。解决办法:1、新增一个专门给css文
2022-05-20 14:53:06
429
原创 BouncyCastleProvider引起的内存泄露修复
最近项目上使用到了一种加密方式叫PGP,提供的工具类里面有使用BouncyCastleProvider类。JcePGPDataEncryptorBuilder c = new JcePGPDataEncryptorBuilder(PGPEncryptedData.DES) .setWithIntegrityPacket(withIntegrityCheck).setSecureRandom(new SecureRandom()).setProvider(new Bo
2022-04-24 09:49:30
2379
转载 IDEA中文输入法候选框不显示问题解决
本机环境:系统: win7 jdk版本:jdk1.8.0_65 idea版本:2017.2.3解决方法:关掉idea,进入idea的安装目录找到jre64文件夹重命名为jre642(随便什么名字都行)如下图然后找到jdk安装目录下的jre文件复制到上图idea的安装目录下并改名为jre64最后找到jdk安装目录下的jdk >> lib >> tools.jar 文件 复制到idea安装目录下的jre64文件下的lib中即可解决问题...
2022-04-22 19:44:32
527
原创 tomcat控制台乱码问题解决
启动tomcat,发现控制台打印中文变成乱码:问题原因:编码不一致。tomcat默认编码是UTF-8,windows的默认编码是GBK,编码不一致导致乱码,修改编码即可。解决办法:去tomcat目录的conf文件夹,打开logging.properties,设置java.util.logging.ConsoleHandler.encoding编码方式为GBK保存后重启tomcat即可...
2022-01-11 10:19:48
238
原创 cmd执行程序突然卡住解决办法
问题原因:windows系统中,cmd程序默认开启了“快速编辑模式”,当鼠标无意中点到里面的区域时,就自动进入了编辑模式,之后程序的控制台会被阻塞,接受不到任何请求。鼠标右键或者敲一下回车后,就会退出编辑模式。这时候控制台一般会刷一大堆日志,然后程序恢复正常。解决办法:(1)手动取消编辑模式cmd-属性-选项,取消勾选 快速编辑模式(2)脚本解决关闭快速编辑模式也可以通过脚本执行。新建文本,复制以下代码,保存后修改为bat后缀,双击运行即可。如下:@echo..
2022-01-05 14:57:53
7604
转载 wireshark 无捕获过滤器/找不到重要的接口列表 net start npf 服务器名无效
最近有问题需要进行抓包,但是安装好wireshark后无捕获过滤器/找不到重要的接口列表,找不到本地网卡,wireshark无法使用。为解决上述问题,在命令行/管理员身份命令行输入命令 net start npf,居然显示:服务名无效。原因:缺少用于网络封包抓取的工具 winpcap解决办法:下载安装安装WinPcap安装后重新操作:打开wireshark—>捕获—>刷新接口列表,正常显示所有网卡了。如果还不行,在命令行,输入net start npf,然后重启wire..
2021-12-15 14:17:36
3664
2
原创 HttpsURLConnectionOldImpl cannot be cast to javax.net.ssl.HttpsURLConnection
之前新建一个https连接是这样的:URL urlStr = new URL("https", ip, Integer.parseInt(port), uri);HttpsURLConnection conn = (HttpsURLConnection) (url).openConnection();但是会偶发出现一个转换异常:com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl cannot be cast
2021-12-15 13:57:23
2703
转载 eclipse设置行宽Maximum line width
1.Window->Preferences->搜索formatter注:如果不能保存,需要在3处修改名字。然后再保存->确定,应用即可。
2021-10-22 17:41:22
449
原创 Unsupported record version Unknown-0.0 问题解决
前几天要用https调用一个地址,jdk使用的是1.8,协议是tlsv1.2,但是一直调用的时候返回Unsupported record version Unknown-0.0,百思不得其解,网上的资料也很少。有一天奇怪的是,在别人的电脑是可以的!于是怀疑起本机internet选项的tlsv1.2、注册表等等,但还是不行。后来无意中发现,低版本的jdk1.8,会有握手时不会发送SNI的bug,于是升级了高一点版本的jdk,结果就解决了!原来是jdk1.8.0_101,升到了jdk1.8.0_
2021-09-18 17:37:59
6259
转载 varchar和nvarchar区别
varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。两字段分别有字段值:我和coffee那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。例
2021-05-26 10:23:03
556
转载 No buffer space available问题解决
今天在公司服务器上部署的一套后台系统突然不能使用了,上服务器看了一下,控制台打印了如下错误信息:java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind之前最快的方法是重启服务器,效果立杆见影(万能的重启大法!),但是治标不治本,过一段时间,这个问题又会再次出现。。是可忍孰不可忍,上网搜寻了一下相关的资料,在stack overflow中看到一条评论说这个是wind
2021-03-11 09:49:54
6661
1
原创 Tomcat设置开机启动
设置之前,首先需要配置Java环境,jdk配置百度就有,不重复了。提醒一下tomcat和jdk的对应版本关系:tomcat v7.0-------->Java EE 6 and 6以上tomcat v8.0-------->Java EE 7 and 7以上tomcat v9.0-------->Java EE 8 and 8以上建议最好都是安装64位的。然后打开系统变量,新建一个变量:CATALINA_HOME=TOMCAT安装目录,例如:CATALINA_..
2021-03-08 10:34:12
162
原创 a标签下载文件
之前实现点击链接就下载文件的功能,后面发现在chrome浏览器直接就打开了,导致乱码不友好。<a href="/doc/csdn.docx">用户操作手册</a>后面发现加上download属性,就可以避免文档、图片、txt等这类型文件直接打开了<a href="/doc/csdn.docx" download="">用户操作手册</a>该属性也可以设置一个值来规定下载文件的名称。所允许的值没有限制,浏览器将自动检测正确的文件扩展名并添加到
2021-02-25 17:33:20
1354
原创 eclipse打开文件所在路径
相当于实现idea的show in explorer功能步骤:1、点击菜单栏上的Run--External Tools--External Tools Configurations2、双击左边的Program3、Name随便填写,location正在上传…重新上传取消
2020-12-09 11:45:33
1492
转载 Java加密 Illegal key size 异常处理
Java进行AES或者DES加密时,如果密钥大于128bit, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.处理办法: 在官方网站下载JCE无限制权限策略文件JDK6的下载地址: http://www.oracle.com/technetwork
2020-09-08 10:34:43
415
原创 JDK1.6 解决Could not generate DH keypair
Java 早期版本是只支持 1024 位的 DH Parma,如果对方是2048位或以上的情况,会报Could not generate DH keypair的异常。JDK1.6的解决办法如下:1.下载bcprov-ext-jdk15on和bcprov-jdk15on的包到$JAVA_HOME/jre/lib/ext下,版本的话1.50-1.59应该都可以如:bcprov-ext-jdk15on-1.52.jar和bcprov-jdk15on-1.52.jar2.包替换之后,修改$JAVA.
2020-08-28 14:12:46
3186
3
空空如也
jpa oracle 用户名驼峰命名自动转为下划线
2022-03-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人