正常的啟動tomcat7而且並沒有報錯,等待了很久終於看到日志打印出來啟動成功了
在這里等了4分鍾
Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom類產生安全隨機類SecureRandom的實例作為會話ID,這里花去了4分鍾。就是這里花了大量的時間去。
有兩種解決辦法:
1.在Tomcat環境中解決
可以通過配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入這么一行:-Djava.security.egd=file:/dev/./urandom 即可。
加入后再啟動Tomcat,整個啟動耗時下降到Server startup in 6213 ms,大大降低了啟動的時間。
2.在JVM環境中解決
先執行which javac命令檢查jdk安裝路徑
/usr/local/java/jdk1.8.0_92/bin/javac
去到$JAVA_PATH/jre/lib/security/java.security這個文件,找到下面的內容:
securerandom.source=file:/dev/urandom
替換成
securerandom.source=file:/dev/./urandom
這樣問題就解決了
原文出處:https://my.oschina.net/handsomejun/blog/708165