System.getProperty()引起的悲剧--您的主机中的软件中止了一个已建立的连接

我已无法形容此刻我的心情..

本来是已经写好的netty5的demo程序,server和client之间创建tcp长连接的..然后随便传点数据的简单demo..然后今天试了一下tcp粘包的例子,用到了System.getProperty()方法,悲剧就从此产生了..改好了程序一运行,服务器端正常启动,然后client端怎么也起不来,一启动就自动退出,完善了一下client端的异常捕获,然后就能偶尔报出些异常信息:

您的主机中的软件中止了一个已建立的连接

恰巧今天装了一些新软件和插件,挨个全都卸载依然无法启动client端,还是报这个错误..检查杀软和防火墙设置也没有任何异常.

这很奇怪啊,debug一下,发现能正常连接,创建要发送的消息,然后准备发送的时候就挂掉了.又寻思难道本地运行环境坏了,赶紧回退代码到没改之前的状态,一运行正常执行..对比一下代码,我直接就倒了...

System.getProperty("line.separator")  //本来应该是这样的
System.getProperty("line.seperator")  //然而我写成了这样

这是一个找茬游戏...

原因也很好理解了,jvm的取对应参数的时候没取到,直接报异常结束程序.

又得到一个教训:这种太底层的配置参数,能复制绝不手写..错起来真要命..

原文地址:https://www.cnblogs.com/chyu/p/5003761.html