2020年11月19日 星期四

使用 jacob出現 java crash注意事項

 參考文件: jacob excel轉pdf

使用 jacob 將 excel 或 word文件轉成 pdf時,會讓 java tomEE server當掉,在 bin目錄就會出現兩個檔案,一個是****pid**.log,另一個是 ****pid***.mdmp ,檢視 log檔時在前面幾行會有 The crash happened outside the Java Virtual Machine in native code出現,內容也找的到 jacob variant的文字,在 windows 事件檢示器上可以看的到一個錯誤是關顧 combase.dll的錯誤,目前解決的方法如下,如果解決問題就不用往下個步驟執行

1.針對轉 pdf程式碼

檢查在轉檔完後,不管成功或失敗,要加上 ComThread.Release();,目的在於把 excel 或 word的程序給關掉,沒有這一行的話,可能會造成 office 程序沒關掉, 而且 server 端會開啟多個的狀況

針對 excel,建議不要執行巨集, ActiveXComponent 物件需設定如下

setProperty("AutomationSecurity", new Variant(3));

Property("EnableEvents", new Variant(false));

2.更換 jacob版本  ,下載版本 https://github.com/freemansoft/jacob-project

3.更換 java 版本

4.更換 office版本

沒有留言:

張貼留言