一个空格惹的祸

    xiaoxiao2021-03-25  109

    最近有朋友咨询我一个问题,问题的最终原因让人大跌眼镜,这里记录分享一下,看到的朋友多注意了!

    问题解决过程以Q&A的方式来说说吧!

    Q:你好,我最近遇到一个很诡异的问题,想请教一下,

    我的tomcat部署了项目后,直接startup启动,启动到快完成的时候,窗口就关闭了,

    日志中也没有错误记录,idea中也无法启动,启动到同一步的时候tomcat就挂起停止然后销毁了,

    没有任何报错,但是我在eclipse中可以正常启动,所使用均为同一个tomcat,环境变量没有问题,

    所使用的均为同一个jdk,我把我的工程和tomcat发给同事,在同事电脑上可以正常启动,

    可能是哪里的问题,找了好久都找不出问题所在。A:如果是把Tomcat完整的考过去的话,那应该还是和环境或启动时的默认参数有关系。试试把Tomcat的work,temp目录下的内容删除;没有项目能正常启动吗?Catalina.out总应该有内容吧?配置Tomcat以Debug模式启动,用Eclipse远程调试下看看。Q:一个很简单的项目可以启动,也能正常访问,空服务器也能正常启动,我每次启动前都把work下的内容以及日志清理了的,日志里面没有任何的错误信息,就是窗口莫名其妙突然关闭,然后就没有了,环境变量、jdk、tomcat我全部重新弄了一遍,还是不行,环境变量检查了很多次没有问题,有问题也不可能编译得了,几个同事都能正常启动,我把他们的tomcat拷贝到我的电脑上,又不行了,完全一头雾水A:你们的项目中是不是用到了和系统相关的,或注册表相关的,代码中有没有 system.exit() 类似的代码?Q:我知道了,我们系统有个授权验证机制,我的授权出了问题,没有授权或授权到期会把系统强制关闭,而且又没有任何的提示信息,所以才出现这种情况,真是坑爹,写个日志也好嘛~~这种安全性的是不想让用户知道的,但没有文档或内部QA的话就是坑自己人了。Q:原来不是我的授权出了问题,是因为代码中用到了Process,他们之前给路径时没有处理,导致获取路径时只能获取到空格之前的内容,而我的tomcat放在D:\Program Files (x86)路径下的,导致每次读取扩展文件时是路径是D:\Program,从而找不到扩展文件,把路径前后加上"\""后问题解决了,而eclipse的路径我用的是eclipse默认的路径,从而没有空格,所以可以正常授启动。而我的同事们项目部署路径都没有空格,所以都没有这个问题。弄了半天,原来是个bug。

    小结

    人遇到一些小问题的时候,可能稍微变通一下就过去了,

    而软件呢?却通常是没有这样的能力的,一个小小的Bug可能产生大大的后果!

    记得看过一个新闻“价值18亿元的日本卫星失控 只因一行错误代码”,具体的错误好像就是因为多写了一个分号。

    而针对这样的问题有什么好的解决方案呢?

    人工智能能解决类似这样的问题吗?

    ======================文档信息===========================

    版权声明:非商用自由转载-保持署名-注明出处

    署名(BY) :testcs_dn(微wx笑)

    文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

    ==============本文首发于个人微信订阅号(微wx笑)============

    转载请注明原文地址: https://ju.6miu.com/read-10656.html

    最新回复(0)