手頭的不少應用都開始往JDK7上遷移,JDK升級後build,test遇到了不少小問題,在這裏一一列舉分析一下:java
Unicode支持升級算法
JDK7支持Unicode6.0,支持了不少新的字符。以前程序中爲一個替換非法字符的函數寫了unit test,測試用例中本來的非法字符在JDK7的函數Character.isDefined()返回結果爲true,致使了測試用例的失敗。安全
反射機制改變致使JUnit test失敗ide
JUnit依賴java自身的反射機制,因爲JDK7反射機制的變化,獲取類方法時不是順序讀取或者按照字母排序來獲取,而是隨機的。若是以前JUnit tests寫得不夠完善,方法間存在依賴或者teardown沒有清理乾淨,會因爲這個緣由致使測試有時不過。可是從JUnit4.11開始增長了指定測試方法執行順序的特性,能夠經過增長annotation來指定test cases的執行順序。總的來講,JUnit test之間理論上不該該存在依賴,JDK7還真的能夠幫咱們糾正一些test case在設計上的錯誤。
函數
SSL證書檢驗更加嚴格測試
以前使用1.7.0_25就碰到SSL通訊的問題,此次使用1.7.0_45又碰到一個新的問題,不得不說JDK在安全性上下的功夫是愈來愈深了。第一點,在使用openssl來生成自簽名證書,配置文件openssl.cnf中必須定義KeyUsage。第二點,在使用1.7.0_31之後的版本,增長了一個對於keysize大小的驗證,具體能夠看%JAVA_HOME%/jre/lib/security/java.securityui
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
可見MD2以及keysize小於1024的RSA算法都會被禁止,用戶能夠直接註釋掉或者修改策略。
設計
用JDK7安裝Weblogic可能遇到的問題code
詳見個人另一篇博文http://jupiterbee.blog.51cto.com/3364619/1289622blog