IntelliJ IDEA

接上一篇IDEA调试技巧远程调试 5. 临时执行表达式/修改变量的运行值调试时,可以临时执行一些表达式,参考下图:点击这二个图标中的任何1个都可以 点击+号后,就可以在新出现的输入框里输入表达式,比如:i+5 然后回车,马上就能看到结果 当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value,剩下的事,地球人都知道。 好了,今天的文章就到这里了,牢记这5大调试技巧可以让你快速定位问题,迅速解决bug,最后祝大家debug愉快!

接上一篇IDEA调试技巧多线程调试 4.远程调试这也是一个装B的利器,本机不用启动项目,只要有源代码,可以在本机直接远程调试服务器上的代码,打开姿势如下: 4.1 项目启动时,先允许远程调试java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 -Djava.ext.dirs=. ${main_class} 起作用的就是: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 注意:远程调试从技术上讲,就是在本机与...

接上一篇IDEA调试技巧回到’上一步’ 3.多线程调试多线程同时运行时,谁先执行,谁后执行,完全是看CPU心情的,无法控制先后,运行时可能没什么问题,但是调试时就比较麻烦了,最明显的就是断点乱跳,一会儿停这个线程,一会儿停在另一个线程,比如下图: 如果想希望下一个断点位置是第2句诗句,可能要失望了: 如果想让线程在调试时,想按自己的愿意来,让它停在哪个线程就停在哪个线程,可以在图中3个断点的小红点上右击, 即:Suspend挂起的条件是按每个线程来,而非All。把这3个断点都这么设置后,再来一发试试 注意上图中的红框位置,断点停下来时,这个下拉框可以看到各个线程(注:给线程起个容易识别的名字是个好习惯!),我们可以选择线程“天空中的飞鸟”。 断点如愿停在了第2句诗。 点击查看下一个IDEA调试技巧远程调试

接上一篇IDEA调试技巧回到’上一步’ 回到”上一步”该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道该技巧,只能再跑一遍。 参考上图,method1方法调用method2,当前断点的位置j=100,点击上图红色箭头位置的Drop Frame图标后,时间穿越了 回到了method1刚开始调用的时候,变量i变成了99。 注:好奇心是人类进步的阶梯,如果想知道为啥这个功能叫Drop Frame,而不是类似Back To Previous之类的,可以去翻翻JVM的书,JVM内部以栈帧为单位保存线程的运行状态,drop frame即扔掉当前运行的栈帧,这样当前“指针”的位置,就自然到了上一帧的位置。 点击查看下一个IDEA调试技巧多线程调试

在项目开发的时候我发现很多小伙伴能非常熟练的使用 IDEA 编写代码,但是对于IDEA调试的技巧掌握的不是很好,只会F7、F8、F9等这些基本调试功能。 而像一些复杂的调试场景就无从下手,如:在for循环中调试某个特定值;多线程、Reactor调试;修改变量的运行值等。 下面我们就来分场景介绍一下IDEA的调试技巧,看完掌握后调试bug的效率一定大大提升 条件断点循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。 参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置。 点击查看下一个IDEA调试技巧回到’上一步’

你身边有没有这种顽固的Eclipse忠实用户:IDEA不能一个窗口管理多个项目!太不方便了! 对于一个窗口同时管理多个项目的需求,在我们日常开发时候是经常需要的。尤其当我们在分布式环境下,在一个窗口中调试起来就能方便很多。 如此强大的IDEA真的不支持吗?!当然不是!是你不会用! 下面我们就来说说如何在一个工作空间中管理多个项目的配置方式: 第一步:先创建一个新的空白工程 在弹出的项目名称和路径输入框中根据你的喜好输入即可。 第二步:添加模块 添加模块的方式有两种: New Module:如果你要管理的是一个新项目,那么可以通过这个选项创建一个新项目,并纳入当前的项目管理界面中。 对于我们这些Spring开发者来说,可以继续用Spring Initializr来初始化你的项目,这样创建出来的项目会成为当前这个项目的模块来管理。 Import Module:如果你要管理的项目已经...

今天开个很久没搞的工程,刚开的时候一片红,很自然的想到,要去配置一下项目的JDK,但是配置好之后,又出了个诡异问题:项目可以运行,但是import项目内部自己写的类的时候,都出现了红色错误。虽然import显示错误,但是实际类是存在的!! 就像下面这样: 那么碰到这类问题之后要如何解决呢?下面说说解决步骤: 第一步:菜单中选择File - Invalidate Caches/Restart... 第二步:在弹出框中,选择Invalidate and Restart 静静等待IDEA重启,此时就可以看到红色import错误没有啦!

JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。今日,疑似JetBrains严查盗版破解用户,导致大量以破解方式获取使用权限的用户,无法继续使用。 各技术社区、论坛、社群等媒介都出现大量求破解码或破解方式的相关内容出现。 与此同时,围绕这些编辑器破解码与破解方式的利用就展开了。 借机引流借着这次大规模破解版实现的问题,大量对应的垂直类媒体渠道也开始借助给予最新破解码的方式来吸引关注。 灰产受挫还有一类用户,通常因为破解麻烦而去某宝或某鱼直接购买注册码的方式来使用,而通常这些方式给予的注册码也非正版渠道。因此在这一波打击中,也都全部被击毙。 虽然他们使用也是盗版,但是也算是一类付费用户,因此也就有了如下图的维权: 至于店主是否真的在服刑中,我们不得而知,也可能只是因为这次杀伤力太猛,回头维权的用...

记录一个昨天碰到的问题以及解决方法,希望对碰到一样问题的你有用! 昨天升级了一下Mac OS,重启后再打开IntelliJ,突然Git就不能用了,报了下面这样的错: 开始以为是不是Git出了问题,打开终端试了一下git命令,是一切正常的,排除git客户端的损坏。 再仔细看错误原因,推测可能是路径配置问题,打开IntelliJ的菜单:Preferences...。 在左侧搜索框中直接搜索git或者直接找到Version Control菜单项,点击下属的Git功能项,此时可以看到当前的Git命令路径配置如下图: 问题就出在这里,将该路径修改为: /usr/local/bin/git 点击右侧的Test按钮,测试一下,可以看到如下图所示的结果: 完成之后,记得点击Apply和Ok按钮,然后关闭设置窗口之后,Git就可以正常使用了!

概述IntelliJ IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intellij IDEA技巧分享给大家。本文是这个系列的第一篇,主要介绍一些你可能不知道的但是又实用的小技巧。 我最爱的【演出模式】我们可以使用【Presentation Mode】,将IDEA弄到最大,可以让你只关注一个类里面的代码,进行毫无干扰的coding。 可以使用Alt+V快捷键,弹出View视图,然后选择Enter Presentation Mode。效果如下: 这个模式的好处就是,可以让你更加专注,因为你只能看到特定某个类的代码。可能读者会问,进入这个模式后,我想看其他类的代码怎么办?这个时候,就要考验你快捷键的熟练程度了。你可以使用CTRL+E弹出最近使用的文件。又或者使用CT...

上次我说了一些 “复杂的重构技巧” ,讲的是一些使用 IntelliJ 的简单功能实现复杂的重构需求的技巧。 看到大家的反响之后我就感觉那个可能不大亲民,因为很多人连 inline 这功能都不知道(那岂不是把 IntelliJ 用成了记事本), 于是我决定再写一篇讲讲 IntelliJ 已经提供好了的一些复杂的重构功能。 这就不再是需要自己进行奇奇怪怪的操作的教程了,就会亲民得多。 从方法中提取方法这是用来快速复用一段代码的功能,名叫 “Extract Method” 。比如,我现在有这么一段业务代码(顺带一提,这是在 Java 调用动态语言 API 时能使用的最健壮的处理数值类型的方法): liceEnv.defineFunction("run-later", ((metaData, nodes) -> { Number time = (Number) nodes...

重构是 IDE 给人类生活带来便利的一个重要方面。但是 IDE 永远不是我们肚子里的蛔虫,有时我们会有复杂到 IDE 不可能直接提供的重构需求。下面我来告诉大家怎么利用有限的 IDE 重构功能, 创造无限的价值 处理复杂的情况。 复习一下快捷键先复习一下快捷键吧,我们这次就看两个就好。 inline这个叫 inline 的东西快捷键是 Ctrl+Alt+n。这个东西的作用是把当前光标上的东西,在代码级别内联掉。 按下这个快捷键后,会看到一个弹窗(这个是 inline 一个 Kotlin 方法的弹窗,对于 Java 还多几个选项。 不过这都不是重点啦): 我们都默认选第一个,就是在 inline 之后删除被 inline 的东西,第二个是 inline 后保留。如果你是在调用处而不是定义处这么搞,第三个选项就可以选,是只 inline 这一处。 我们一般不管,使用第一个。 renam...

之前介绍了关于Intellij IDEA的插件和快捷键内容,非常受欢迎: 最好用的 IntelliJ 插件 Top 10 我最常用的Intellij IDEA快捷键昨天正好看到卓凡分享的这几个装逼利器,推荐给大家平时把玩。 TOP 5 stackoverflow排在第五位的是来自brucege的stackoverflow。 评委点评:这一看似平淡的右键stackoverflow,却把其中的闷骚体现的淋漓尽致:我就这么叼,我就不去浏览器里查,只有右键才和我的右手匹配。 逼气指数:☆☆ TOP 4 Sudoku Plugin排在第四位的是来自jaypeevoss的Sudoku Plugin。 评委点评:在idea中想到集成自己喜欢的游戏进去,也是没谁了。 逼气指数:☆☆☆ TOP 3 Nyan progress bar排在第三位的是来自daddy-bear的Nyan p...

你是否在寻找更有效率的编程方法? 使用键盘来代替鼠标执行操作并不是一个秘密,这将节省您大量的时间。 如果你只是想执行一次操作,那么这不是什么大不了的事情。但是如果你每天多次使用相同的操作呢?如果将所有这些操作都加起来,就将会对您的生产力产生很大的影响。 我几乎用键盘快捷键来完成我的大部分操作。在我年轻的时候,玩了半职业的实时战略电脑游戏,包括星际争霸和魔兽争霸III。 星际争霸中流行APM(每分钟操作数) ,它计算了玩家每分钟执行的动作数量。 通过使用工具,可以通过记录APM来判断玩家是使用鼠标操作还是使用键盘和鼠标的操作组合。 通常,使用键盘和鼠标组合玩法的玩家获得游戏胜利的概率要比仅通过鼠标点击的玩家获胜概率要高。 那么这和代码以及IntelliJ有什么关系呢?通过上面的例子,我相信你可以联想到,通过学习和使用键盘快捷键来执行所需要的操作,可以有效地提高代码开发的效率。 您可以...

IntelliJ的十大插件?相信每个人都有自己的选择。我们也同样如此。在这里,我们为您带来我们认为的十大IntelliJ插件。 如果你还是不知道什么是IntelliJ插件,请先阅读our page about plugins。或者访问plugins.jetbrains.com获取更多信息。 1. Grep Console允许您定义一系列的正则表达式,利用它们来对控制台的输出或文件进行测试。每一个表达式匹配的行都会被整行的应用某个样式,或者播放声音。例如,你可以将错误消息设置为以红色的背景来显示。 官方网站 点击这里. 2. JRebel for IntelliJJRebel是一个提升生产力的工具,它可以帮助开发人员快速的重新加载更改的代码。 它跳过了Java开发中常见的重新构建,重启以及重新部署的循环操作。 JRebel使开发人员能够在相同的时间内完成更多的工作,让开发人员的编码过...