-
Java新版switch
##使用箭头符号可以省略`break`##使用`yield`可以有返回值不能和`return`一起使用,箭头符号直接跟值可以省略`yield`。*return:跳出方法*break:跳出switch*yield:跳出switch*->:跳出switch测试代码:```javapublicinttestSwitch(intkey){System.out.println("----------------1");switch(key){case1:System.out.println("1");break;case2:System.out.println("2");break;case3:case4,5:System.out.println("3");break;default:System.out.println("default");break;}System.out.println("----------------2");switch(key){case1:System.out.println("fallthrough=1");case2:System.out.println("fallthroug...
Java switch -
github actions windows环境变量
多个步骤之间传递变量:```yml#获取版本echo"version=${GITHUB_REF##*/}">>$GITHUB_ENV```但是window获取不到,需要使用下面的写法:```yml#获取版本$version="${{github.ref}}".substring("refs/tags/".length)echo"version=$version"|Out-File-FilePath$env:GITHUB_ENV-Encodingutf8-Append```还有就是upload-release-asset不能一次上传多个文件使用hub命令上传```ymlhubreleaseedit-asnail-${{env.version}}.${{env.suffix}}-m"${{env.version}}"${{env.version}}```>windows必须填写备注`-m`[完整打包脚本](https://github.com/acgist/snail/blob/master/.github/workflows/package.yml)话说Github的发行版本文件大小只有单个文...
github actions windows -
github actions windows tar错误
最近使用github进行自动打包,但是发现tar在windows系统里面总是提示错误:```basetar.exe:./build/snail:Couldn'tfindfile:Invalidargumenttar.exe:Errorexitdelayedfrompreviouserrors.Error:Processcompletedwithexitcode1.```后来发现需要在参数后面添加星号:```base#错误命令tar-zcvfsnail-${{matrix.runs-on}}.tar.gz./build/snail/#正确命令tar-zcvfsnail-${{matrix.runs-on}}.tar.gz./build/snail/*```另外一个错误:```basetar:ExitingwithfailurestatusduetopreviouserrorsError:Processcompletedwithexitcode2.```这个是因为命令错误:```base#错误命令tar-cvfsnail-${{matrix.runs-on}}.tar-C./build/snail/*#正确命令t...
github actions -
使用jpackage打包java程序
最近发现java推出了一个打包工具,终于是有了官方的打包工具了。下面使用windows来做一个教程##安装wix下载地址:官网:[https://wixtoolset.org/](https://wixtoolset.org/)Github:[https://github.com/wixtoolset/wix3/releases](https://github.com/wixtoolset/wix3/releases)安装然后配置环境变量##打包命令```basejpackage--namesnail--input".\build\snail\"--main-jar"snail.javafx-1.7.11.jar"```Windows打包后如果需要管理员权限才能运行是因为少了配置参数`--win-per-user-install`##Ubuntu打包时提示没有`fakeroot`,解决办法:```bashsudoaptinstallalien```##CentOS打包时提示`错误:类型[rpm]无效或不受支持`,解决办法:```bashyuminstallrpm-buildredhat-rpm-config`...
jpackage -
cordova打包app
环境:```basenpminstall-gcordovacordovacreateacgistcom.acgistacgistcordovaplatformaddandroid--savecordovaplatformlscordovarequirements```指定版本:```basecordovaplatformaddandroid@^6--save```打包:```basecordovabuildcordovabuild-releaseandroid```签名:```basekeytool-genkeypair-aliasacgist.keystore-keyalgRSA-validity3650-keystoreacgist.keystorejarsigner-verbose-keystoreacgist.keystore-signedjarapp-release-sign.apkapp-release-unsigned.apkacgist.keystore```下载gradle太慢可以使用迅雷下载然后添加到路径`C:\Users\28954\.gradle\wrapper\dists`的相应目录...
cordova -
JavaFX启动异常
错误日志:```javaExceptioninthread"WindowsNativeRunloopThread"java.lang.NoSuchMethodError:atjavafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(NativeMethod)atjavafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)atjavafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)atjavafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(NativeMethod)atjavafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)atjava.base/ja...
JavaFX -
elasticsearch错误
错误日志:```java[2021-01-11T10:44:40,184][WARN][o.e.x.m.e.l.LocalExporter][node-1]unexpectederrorwhileindexingmonitoringdocumentorg.elasticsearch.xpack.monitoring.exporter.ExportException:org.elasticsearch.common.ValidationException:ValidationFailed:1:thisactionwouldadd[1]totalshards,butthisclustercurrentlyhas[3693]/[1000]maximumshardsopen;atorg.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$throwExportException$2(LocalBulk.java:125)~[x-pack-monitoring-7.3.0.jar:7.3.0]atjava.util.stream.Referenc...
elasticsearch -
Java自带HttpClient下载CPU占用过高
下载HTTP协议没有问题,下载HTTPS协议的时候CPU一直维持在20%-30%左右。升级到JDK15问题依旧存在。```java"Snail-Thread-HTTP-Client"#25daemonprio=5os_prio=0cpu=216656.25mselapsed=272.70stid=0x0000024e34a84800nid=0x3a68runnable[0x00000066085fd000]java.lang.Thread.State:RUNNABLEatcom.sun.crypto.provider.GHASH.blockMult(java.base@11.0.2/GHASH.java:97)atcom.sun.crypto.provider.GHASH.processBlock(java.base@11.0.2/GHASH.java:186)atcom.sun.crypto.provider.GHASH.processBlocks(java.base@11.0.2/GHASH.java:236)atcom.sun.crypto.provider.GHASH.update(java.base...
Java HttpClient -
EChart折线图Y轴BUG
EChart折线图Y轴坐标数值显示错误,只需要把`series`的`stack`属性删掉就正常了。
EChart -
阿里云yum镜像
今天改了一下服务器配置,好久没有更新过服务器的软件了,然后发现以前的yum源用不了了。```http://mirrors.cloud.aliyuncs.com/centos/6/os/x86_64/repodata/repomd.xml:[Errno14]PYCURLERROR22-"TherequestedURLreturnederror:404NotFound"尝试其他镜像。Toaddressthisissuepleaserefertothebelowwikiarticlehttps://wiki.centos.org/yum-errorsIfabovearticledoesn'thelptoresolvethisissuepleaseusehttps://bugs.centos.org/.http://mirrors.aliyun.com/centos/6/os/x86_64/repodata/repomd.xml:[Errno14]PYCURLERROR22-"TherequestedURLreturnederror:404NotFound"尝试其他镜像。```原来阿里云的镜像地址改了:[https:...
yum aliyun -
常用命令总结
##查看当前Java进程```jps```##查看Java线程快照```jstackpid```##查看Java内存快照```jmap-histo:livepid```##内存快照时间统计```bashcatfile|grepcpu=|grep-Po'(cpu=\d+\.\d+ms)'|grep-Po'(\d+\.\d+)'|awk'{sum+=$1}END{printsum}'```##关闭JIT```java-Djava.compiler=NONE```##提交Sonar```basemvnsonar:sonar-D"sonar.projectKey=snail"-D"sonar.host.url=http://localhost:9000"-D"sonar.login=token"```##消息分类统计```basecatsnail.log.*|grep-a处理piece消息|grepTCP|wc-l;catsnail.log.*|grep-a处理piece消息|grepUTP|wc-l;catsnail.log.*|grep-a发送piece消息|grepTCP|wc-l;catsnail.log.*...
Java jstack jmap jps Linux -
Java hashCode陷阱
经常会重写`hashCode`和`equals`方法来实现对象判断是否相等,之前使用`Objects.hash`这个方法,后来发现这个是有点问题的:```java//String一致System.out.println(Objects.hash(newString[]{"1","2","3"}));System.out.println(Objects.hash(newString[]{"1","2","3"}));//Integer一致System.out.println(Objects.hash(newInteger[]{1,2,3}));System.out.println(Objects.hash(newInteger[]{1,2,3}));//int不一致System.out.println(Objects.hash(newint[]{1,2,3}));System.out.println(Objects.hash(newint[]{1,2,3}));//int一致System.out.println(Arrays.hashCode(newint[]{1,2,3}));System.out.print...
Java hasoCode -
lucene搜索不到结果
以前`IndexWriter`和`IndexReader`没有使用常量的时候是没有问题的,改成常量后发现不能及时搜索了。这个问题需要我们每次添加索引后重新创建`IndexReader`对象就好了。
lucene -
Java线程不能唤醒错误
今天发现了一个问题,线程不能被唤醒,发现是我的代码写的有问题:```java//单例privatestaticfinalNatContextINSTANCE=newNatContext();//初始化privateNatContext(){this.register();}```在`register`里面加锁,然后外面获取单例解锁,这样就会出现无法唤醒的情况。
Java notify wait -
JSON Map类型指定类型
####fastjson```javaJSON.parseObject(responseJSON,newTypeReference>(){})````####jackson```java//第一种finalMapdata=mapper.readValue(json,newTypeReference>(){});//第二种finalJavaTypetype=mapper.getTypeFactory().constructParametricType(Map.class,String.class,Object.class);returnmapper.readValue(json,type);```推荐使用`TypeReference`,可以使用返回类型进行泛型推断:```javapublicstaticfinalMaptoMap(Stringjson){if(json==null){returnnull;}try{returnMAPPER.readValue(json,newTypeReference>(){});}catch(IOExceptione){LOGGER.error("JSON字...
JSON -
Chrome多关键字搜索插件
最近开发了一个Chrome浏览器多关键字查询的插件,插件地址:[https://gitee.com/acgist/chrome](https://gitee.com/acgist/chrome)上几个效果图:配置规则:查询结果数量:查询结果标记:
Chrome 插件 -
Eclipse吐槽
家里面装的Eclipse是2019年的版本,然后我升级到2020-09版本。之前在公司装过一次这个版本,忘记了是什么BUG了,所以公司现在还是用的2020-06。这次忘了这茬了,结果装完又出问题了,启动后发现没有JS编辑器了。2019版本的JS编辑器格式化不是很好用,公司的2020-06的很好用,所以才升级的,升级发现居然直接没了。然后我又装了2020-06的,结果发现还是没有,然后我就把工作空间里面的配置`.metadata`删了,全部重新配置了一遍,发现好了。龟龟,花了一个小时。然后就是Eclipse商城里面的freemarker插件居然装不了😑JBoss更新慢就算了,最后还失败了,难受🙉还有我的maven的资源目录改过,发现eclipse并不会自动使用,而是需要手动设置后才有效。
Eclipse -
Spring定时任务和延迟初始化
有一个遗留的Spring项目使用的XML和注解一起使用,然后发现定时任务注解没有执行:```java@Scheduled(cron="0/5****?")publicvoiddiary(){...}```后来发现原来是XML里面配置了延迟初始化`default-lazy-init="true"`,解决办法:1.修改延迟初始化为`false`2.在定时任务类加上注解`@Lazy(value=false)`
Spring task lazy -
Java lambda空指针踩坑
使用`findFirst`方法会出现以下错误:```javajava.lang.NullPointerExceptionatjava.base/java.util.Objects.requireNonNull(Objects.java:221)atjava.base/java.util.Optional.(Optional.java:107)atjava.base/java.util.Optional.of(Optional.java:120)atjava.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:194)atjava.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:191)atjava.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)atjava.base/java.util.stream.AbstractPipeline.evaluate(Abstrac...
Java lambda NullPointerException -
HTTP 405错误
这个错误就是方法不允许,最常见的就是只能`POST`请求使用`GET`请求。```java.io.IOException:ServerreturnedHTTPresponsecode:405forURL:https://www.acgist.com/xxxxatjava.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1913)atjava.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)atjava.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:245)```还有一种情况也会出现这个问题,就是`GET`请求,但是调用了`connection.getOutputStream()`。
HTTP 405