我們使用exe4j 4.4.4來構建運行我們的Java程序的exe。我們的一位客戶抱怨說,有時候他們在運行我們的exe時會出現「Windows錯誤7」。這隻會間歇性地發生,並且只發生在幾百臺機器上。exe4j無法創建臨時目錄(可能導致Windows錯誤7)
我們啓用了exe4j調試,並注意到在出現錯誤的情況下,exe4j日誌文件包含如下所示的幾個條目,然後結束。但是,在成功啓動exe時,日誌文件將超出這些條目並最終啓動我們的Java程序。
這些都是在exe4j的日誌文件中的最後幾個日誌消息時,我們得到的錯誤:
GetTempPath返回14(最後一個錯誤183)
化妝DIR返回-1
TEMPPATH是C:\ WINNT \ TEMP \
臨時文件是C:\ WINNT \ TEMP \ e4j38.tmp
臨時目錄:C:\ WINNT \ TEMP \ e4j38.tmp_dir
無法創建目錄(183)
GetTempPath返回14(最後一個錯誤183)
使目錄返回-1
TEMPPATH是C:\ WINNT \ TEMP \
TEMPFILE是C:\ WINNT \ TEMP \ e4j39.tmp
溫度DIR:C:\ WINNT \ TEMP \ e4j39.tmp_dir
不能創建目錄(183)
GetTempPath返回14(最後一個錯誤183)
化妝DIR返回-1
TEMPPATH是C:\ WINNT \ TEMP \
臨時文件是C:\ WINNT \ TEMP \ e4j3A.tmp
臨時目錄:C:\ WINNT \ TEMP \ e4j3A.tmp_dir
無法創建目錄(183)
如果我沒有錯誤Exe4j在臨時目錄中創建另一個可執行文件。聽起來像是在寫保護目錄中這樣做(c:\ winnt通常對於普通用戶不可寫)。這是我選擇WinRun4J而不是Exe4J的原因之一 –
但是這個問題在同一臺機器上間歇性地發生!用戶在C:\ WINNT \ TEMP中看到一堆exe4jxx.tmp_dir文件夾。 「GetTempPath返回14」是什麼意思? – alecswan