2011-08-08 6 views
0

ユーザーがローカルでダウンロードして開くHTMLファイルで実行されるアプレットがあります(URLバーのfile://)。このアプレットには、Webからファイルをダウンロードし、アプレットが実行されているディレクトリ内のディレクトリに格納するメソッドがあります。私のHTMLファイルでは、ファイルをダウンロードする関数を呼び出して動作しますが、別のファイルをダウンロードするために2回目に呼び出すと、Error calling method on NPObject.が表示されますJava側でエラーは発生しませんそれは清潔に保たれます)。 ここで問題になるのは何ですか?ご協力いただきありがとうございます。以下は、アプレットのコードです。ファイルをダウンロードする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.返す場合run()方法はブロックする私はreturn nullにそれを変更し、今ではすべてが動作します。 :)

関連する問題