從Java中,我將可執行文件解壓縮到使用File.createTempFile()指定的位置。當我嘗試運行我的可執行文件時,我的程序在嘗試讀取第一行輸出時掛起。如何在Java中取消Windows文件名的縮放?
我發現如果我嘗試從另一個程序運行相同的解壓縮的可執行文件,它將起作用,如果我將該目錄指定爲C:\ Documents and Settings \ username \ Local Settings \ Temp \ prog.exe。但是,如果我將目錄指定爲C:\ DOCUME〜1 \ USERNA〜1 \ LOCALS〜1 \ Temp \ prog.exe,我會得到掛起。
有沒有辦法在我的程序中取消波形文件名,這樣我可以指定一個可以工作的目錄名稱?
(而且因爲我總是喜歡解決語言和API設計的問題,是沒有任何理由的Java File.createTempFile()和java.io.tmpdir必須評估,以錯位的文件名?)
比我的回答更好,雖然我懷疑這是他的問題。 – 2010-03-25 19:06:48
這確實看起來可以解壓縮文件名!不過,當我跑步時它仍然會掛起。我不明白爲什麼,但是,正在努力... – skiphoppy 2010-03-25 19:08:40
啊哈!我必須在我提取可執行文件時使用的OutputStream上調用close()。 原來我的測試中,我無意中通過我的應用程序仍然在使用(而不是關閉())的可執行文件的損壞文件名,併爲不再使用的先前提取文件傳遞完整文件名。 – skiphoppy 2010-03-25 19:15:00