今天更新了svn代码后,启动项目就莫名其妙的报了个OutOfMemoryError: unable to create new native thread,而且是在创建某个定时器任务的时候报的异常。而其他同事却没有这个问题。百思不得其解。
后来在网上查了一下,建议先去查看java进程的堆栈信息。
然后就按照建议,用jps查询PID
jps -lvm 查询java进行以及PID
接着,用
jstack -l pid
命令查询堆栈信息就报了个
Unable to attach to 32-bit process running under WOW64
谷歌翻译了如下:
无法连接到WOW64下运行的32位进程
我大概就明白了,去查看了一下项目运行的jdk版本,发现是32位的jdk,而且是myeclipse自带的32位jdk,而我环境变量配置的jdk是64位的。所以打算修改项目运行的jdk,在运行项目查看堆栈信息。可是项目启动后查看日志竟然正常了,没有OutOfMemoryError错误了。误打误撞的解决了问题。虽然现在还不清楚是原因,但是至少可以作为出现该错误的一个尝试的方案也未尝不可。