2012-06-21 104 views
0

我想清除我在java.io.tmpdir中寫入的myfolder內容(有一些jar)爲小程序臨時使用。 現在,當我試圖刪除無效停止的內容(JAR的)()方法,下面的代碼:java applet - 刪除(「java.io.tmpdir」)+「myfolder」關閉applet或stop()的內容

public void stop() 
{ 
File directory = new File (System.getProperty("java.io.tmpdir")+"JarClassLoader"); 
       // Get all files in directory 
        File[] files = directory.listFiles(); 
        for (File file : files) 
        { 

         // Delete each file 
         if (!file.delete()) 
         { 
          // Failed to delete file 
        } 
       } 
} 

它不清除任何東西,或也許OS持有這些罐子的。每次我運行一個小程序,這些jar繼續增加..有什麼辦法刪除這些小程序停止的內容?

+1

是否進入'//無法刪除file'塊?你確定你沒有從這些罐子裏拿東西(比如在JVM中執行類)嗎? –

+1

需要知道更多之前才能提供合理的答案。發佈[SSCCE](http://sscce.org/)。請爲代碼塊使用一致的邏輯縮進。 –

+0

是的,它將無法刪除文件塊,直到我註銷並重新登錄到我的應用程序。重新登錄並首次加載小程序後,它將刪除void stop()上的所有先前文件。 但是,對於同一個會話,即使手動,我想刪除這些jar文件..我無法,Windows操作系統已經讓他們擱置.. 我想知道,我已經遷移離開applet..den爲什麼操作系統仍然持有這些罐子......有什麼辦法通過覆蓋void destroy()方法釋放或清理applet正在使用的所有臨時內容? –

回答

0
File directory = new File (System.getProperty("java.io.tmpdir")+"JarClassLoader"); 

這應該是:

File directory = new File (System.getProperty("java.io.tmpdir"), "JarClassLoader");