不知道小伙伴们有没有遇到过标题的问题,明明同样的一套代码,在自己本地就是运行不起来,或者说在本地只改了一个无关痛痒的代码,看上去人畜无害,结果就报各种乱七八糟的错误,但是同事却能运行的好好的。检查了各种情况都没有问题,搞的都要怀疑人生了。
阿粉就遇到过,特别是在刚入职场的时候,有几次遇到这样的问题,还差点搞起来乌龙。好在阿粉最终明白了代码是不会骗人的,就像常说的“Talk is cheap,show me the code”。
那么对于一些刚如职场的小伙伴来说,遇到这种情况的话应该怎么处理呢?
首先要明确一点那就是如果代码一定相同的话,绝大部分情况是环境的问题!这里的环境包括但不限于 JDK 版本,Maven 版本,链接的网络,类路径,操作系统,浏览器版本等。
因为很多时候软件的版本不一样,效果也会不一样;特别是 Windows 和 macOS 的文件路径也不一样,阿粉之前遇到的就是不同操作系统上面文件上传路径的配置不一样导致的。
遇到这样的问题的时候,可以参考下面的思路解决
同事真的能正常运行吗
同事正确运行的效果是不是最新的代码?因为有的时候可能是最后一次提交的代码有问题,但是同事并没有拉取有问题的代码,这时候的表现就是同事能正确运行,但是自己的不行。这种情况下其实你们的代码版本是不一样的,并不是标题提到的一样的代码,但是很多时候自己内心会以为代码是一样的。
还有就是对方运行的效果可能是缓存数据,可以清除一下对方的缓存,maven 的缓存,浏览器的缓存等所有可能有缓存的地方,然后再次运行,确保在对方的环境下是真正的能正确的运行。
真的没改动代码吗?
还有一种情况就是自己本地的确实改动了部分代码,但是改动的地方看上去是人畜无害的,但是就是跑不起来。这种情况下如果回滚掉这段人畜无害的代码过后能正确运行,那么不要怀疑,就是这段看上去人畜无害的代码导致的。
虽然说是这段代码导致的,但是也不能说这段代码有问题,只能说是这段代码带来的问题,比如有的时候引入了一个新的 pom 依赖,项目就起不来了,很有可能就是这个依赖里面的 jar 包有冲突导致的。
确保环境正确
如果说同事是真的能运行成功,而且自己确实没有改动任何一行代码,那毫无疑问就是环境问题。本地的 JDK 版本是否正确;链接的公司网络是否正确,有的公司会严格区别办公网络和访客网络;Maven 版本是否正确,如果是新拉取的代码库可能是网络问题导致很多依赖没有下载成功,因为第一次加载项目依赖还是比较费时的。另外工具有时候也会抽风,那可以尝试一下重启一下 IDEA 或者重启一下电脑,有的时候也会有神奇的收获。
另外很多公司可能有自己的 Maven 私服,这个时候我们需要在 Maven 的配置文件中加入公司内部的私服地址,这个对于新人来说也经常遇到。
总结
反正跑不起来肯定有原因,不是代码原因就是环境原因,一般经过上面几个方式的排查,都能找到问题了,如果再不行,重新查询拉取代码库也未尝不是一个方法,当然如果实在解决不了,咨询前辈也是一个很有效的方法。
解决问题最难的不是如何解决问题,而是发现问题的本质原因,很多时候一个问题解决不了是因为不知道问题的根本原因是什么,很容易被一些表面现象所迷惑,当我们花点时间仔细分析后,才发现最终的问题跟表面出来的可能完全不一样。