2011-08-08 68 views
0

我有一個小程序在HTML文件中執行,用戶在本地下載並打開(即URL地址欄上的file://)。這個小應用程序有一個方法,從web下載文件並將其存儲在小程序正在運行的目錄內的目錄中。在我的HTML文件中,我調用函數來下載一個文件,它可以工作,但是當我第二次調用它時,要下載另一個文件,我得到一個Error calling method on NPObject.我沒有在Java端發生任何錯誤(我打開了控制檯並保持乾淨)。 這裏有什麼問題?非常感謝您的幫助。下面是applet的代碼。Java小程序下載文件文件

import java.security.*; 
import java.io.*; 
import java.nio.channels.*; 
import java.net.*; 

public class EPPenDrive extends java.applet.Applet { 

    public final static String baseURL = "http://localhost/data/documents/"; 

    public String downloadFile(final String filename) { 
     return (String)AccessController.doPrivileged(new PrivilegedAction() { 
      public Object run() {  
       try { 
       URL finalURL = new URL(baseURL + filename); 
       ReadableByteChannel rbc = Channels.newChannel(finalURL.openStream()); 
       URL appletDir = getCodeBase(); 
       FileOutputStream fos = new FileOutputStream(appletDir.getPath() + "documents/"+ filename); 
       fos.getChannel().transferFrom(rbc, 0, 1 << 24); 
       return 1; 
       } catch (Exception x) { 
       x.printStackTrace(); 
       return null; 
       } 
      } 
      }); 
    } 

    public void init() { } 
    public void stop() { } 

} 

回答

0

我發現這個問題:如果返回1,我把它改成return null,現在一切正常run()方法將阻塞。 :)