平时在windows系统上更习惯用git bash作为终端,因为gitbash支持一些常用的linux命令。 现在也想把IDEA中的terminal也替换为git bash, 操作如下: 打开IDEA配置项:IntelliJ Idea File—>settings—>Tools—->Terminal 。 设置 Shell path 为 D:\Program Files\Git\bin\bash.exe ,点击Apply完成终端调整。重启IDEA可以完成terminal的调整。
[阅读更多...]-
IntelliJ IDEA将terminal设置为git bash
-
ExtJs7 生产和测试环境选择不同的配置
最近开始使用ExtJs7开发点儿小东西,其中有些配置在生产环境和测试环境是不一样的。本来想将就下,在生产和测试的时候分别改动下,但是改了几次后实在受不了了,想找个地儿统一管理下。 查了资料,在sencha论坛找到了这个帖子:Different API URL for development and Production。题主有和我相同的疑问,也得到了解答。但是美中不足的是,他们的方案只适用于extjs6.x版本。好在有方向了——可以从 app.json 文件着手,然后利用Ext.mainifest取值。 仔细看了一遍 app.json 文件,发现在这里可以发挥一下: 这里的注释提示可以在相应的区域分别作 生产/测试/开发 环境的配置。 我在development区域添加了host配置: 然后在Application.js中尝试读取host配置: 在浏览器中刷新页面,看到了预期中的输出。Over! End!
[阅读更多...] -
Windows下git bash添加alias
windows下的git bash算是最简单直接的linux命令行工具了。我平时也喜欢将之用为Jetbrains家各种IDE的terminal。 但是使用git bash时,有些习惯的linux命令,如ll,是没有的,只能使用ls -l。因此需要想办法添加alias。 步骤大致如下: 打开git安装目录下的etc目录(如:D:\Program Files\Git\etc) 编辑这个目录下的bash.bashrc文件 添加如下命令: 大致就是这样。
[阅读更多...] -
JetBrains DataGrip的JavaFx错误提示及修复
这两天(20200409)手欠升级了DataGrip(JetBrains的数据处理工具),没想到升级完成后一打开就报了下面的错误: Tried to use preview panel provider (JavaFX WebView), but it is unavailable. Reverting to default. 后来发现是markdown文档插件的问题。关键是这个Markdown插件是JetBrains官方提供的,没想到居然也会报错。 因为吃过一次类似的亏,所以后来注意到错误提示中的JavaFx字样后第一反应就是“是不是DataGrip嵌入的JRE升级到了JDK11”。 查看DataGrip的about信息,看到JDK版本是11.05。看样子就是这个问题了。 第一个思路是将JavaFx的相关依赖放到Markdown插件的lib目录下。去官网下载了JavaFx,解压后将lib目录下的jar文件放到Markdown插件的lib目录下,重启,继续报错。该方案失败! 第二个思路很直接,既然放在插件目录下不行,那就放到DataGrip的依赖目录下。这次尝试将JavaFx的jar放到DataGrip安装目录下的lib目录下。重启DataGrip,打开Markdown文件后没有报错,我一度以为我成功了,但是接下来就发现DataGrip卡死了。只好杀死进程,删除放到DataGrip安装路径lib目录下的JavaFx相关jar后再想其他办法。 第三个方案是在JetBrains社区找到的,是可行的。所以简要介绍下步骤: 安装插件Choose Runtime,重启DataGrip 在菜单栏中选择Help->Find Action(快捷键Ctrl+Shift+A)打开快捷窗口,在Actions选项卡下输入Choose Runtime,然后Enter调用ChooseRuntime插件 选择JRE,可以直接选择自己安装的JRE,也可以选择下载JetBrains提供的JRE并安装,完成后DataGrip会重启 重启后打开Markdown文件不再报错。问题得到解决。不过,美中不足的是发现打开的DataGrip多了一个难看的Windows标题栏。解决的方法也比较简单,换一个本机安装的JetBrains其它产品(比如IDEA或PyCharm)的嵌入JRE就可以了。 JetBrains也有提供独立的JRE,点击此处进行下载。 修改“idea.config.path\<product>.exe.jdk”文件也可以完成JRE的配置。 JetBrains嵌入的JRE在本机的地址为产品安装目录下的jbr目录,比如我机器上DataGrip嵌入的JRE路径如下: 就这样!End!
[阅读更多...] -
查找占用CPU时间最长的线程
记录下查找Java应用占用CPU时间最长的线程的过程。 获取进程ID 使用jps指令获取java服务进程ID: 命令结果如下: 其中19064即是目标java服务进程ID。 查询线程占用时间 使用top -H -p pid指令查询指定进程下的线程占用CPU的信息。 其中“-H”说明查询线程信息,“-p”指示进程ID, pid为进程ID。 执行命令如下: 执行结果如下: 输入大写P(shift + p)可以查看占用CPU最多的线程;输入大写T(shift + t)可以查看占用CPU时间最长的线程。 结果中第一列为线程ID。这里的线程ID是十进制的。因为jstack中的线程ID是以十六进制表示,所以需要将线程ID转为十六进制。 以第一行的线程ID 43225为例,使用如下命令进行转换: 转换结果为: 通过输出结果可知,43225对应的十六进制值是a8d9,通常记为“0xa8d9”。 找到线程进行定位 找到占用CPU较多的线程ID后,还需要将线程执行程序进行关联。 使用jstack命令打印线程堆栈信息,在堆栈信息中搜索十六进制的线程ID,如根据a8d9搜索到的结果为: 注意堆栈信息中的“nid=0xa8d9”,nid即表示十六进制线程ID。 根据堆栈信息可以看出这个线程是日志打印线程,占用CPU时间较长也是可以理解的。 就这样。 其他 如果为目标应用启用了jvm监控服务(如JSPY)的话,这套流程会简单许多——只需要先排序再查看就可以了。 再记录下top指令的一些交互命令:
[阅读更多...] -
linux防火墙操作命令
最近又开了一个VPS,免不了一通配置。在这里简单记录下linux防火墙相关的操作。 操作系统:centos7。 1. firewall启动、停止、重启 2. 配置/取消 firewall开机启动 3. 新增开放端口 注意事项: 执行新增/删除操作需要重启防火墙服务。 其他节点 telnet开放的端口必须保证本地 “telnet 127.0.0.1 端口号” 能通。本地不通不一定是防火墙的问题。 4. 删除开放端口 5. 查看防火墙信息 另外一些指令,或可有用:
[阅读更多...] -
IDEA修改类注释自动生成的用户名
使用IDEA时,自动生成的类注释中的用户名默认为操作系统当前的用户名。这样的用户名通常和实际要用的用户名是不一致的。 已知的有两种调整方式。 第一种方式在File -> Settings -> Editor -> File and Code Templates –> Class –>Includes –>File Header 添加固定的author注释即可。如下: 不过我并不喜欢这种固定写死的方式,有的时候需要自动生成文档的时候这里还是会出问题。 在idea中,对应用户名的变量是“${USER}”,这个变量对应的虚拟机参数是“-Duser.name”。要调整这个参数,在网上找到的多是修改idea安装目录下的“\bin\idea.exe.vmoptions”文件,在最后一行添加“-Duser.name=用户名”这种做法。 不过这种方式在较新版本的idea中并不适用。可用的方式是在IDEA的菜单中选择 Help –> Edit Custom VM Options, 然后点击确定,在idea的用户目录中创建一个新的idea.exe.vmoptions文件,在编辑器中为这个文件的最后一行添加“-Duser.name=用户名”。 再次调整File Header为如下格式: 然后保存重启即可。 #####
[阅读更多...] -
gradle: No cached version of org.scala-lang
在idea中使用gradle构建项目时总是提示失败,发现报错信息如下: 看了一下,关键是最后一行: 印象中并没有设置过离线模式。看了一下idea中gradle的设置,发现存在相关的默认设置“Offline work”。取消勾选“Offline work”就可以了。 依次打开如下菜单: Settings -> Build.Execution,Deployment -> Build Tools –> Gradle 在Globle Gradle settings中有“Offline work”项,取消掉勾选就可以了。 #######
[阅读更多...] -
清理idea缓存
使用idea的时候,有时调整了文件结构或pom文件就会报一些莫名其妙的错误。之前的解决方式是:打开应用目录,删除掉一系列idea生成的工程文件,而后再用idea重新打开就行了。 现在发现了一个新的解决方式:选择 菜单 -> File –>Invalidate Cache / Restart,打开缓存清理功能,点击“Invalidate and Restart”完成清理并重启就可以修复这类问题。 IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的,这某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,IntelliJ IDEA 会有很大可能报各种莫名其妙的错误。
[阅读更多...] -
URI has an authority component
在sbt的repositories中添加了本地的maven仓库,像这样子: 不过在执行时收到了如下的错误提示: 修改起来也比较简单,只需要这样设置即可: 在file://后面多添了一个斜杠。
[阅读更多...]