0

ここで、サーバー パスからテキスト ファイルをダウンロードし、ubuntu では /tmp/ に、windowsXP では C:windows/temp/ に OLFile として保存し、それをデフォルトのプリンターに送信するアプレットを作成しました。これは ubuntu OS でのみ機能しますが、 WindowsXP の firefox では動作しません。Eclipse (windowsXP) からアプレット ソース ファイルを実行すると、動作します。java コンソールは、firefox (windowsXP から) でアプレットをロードしているときに、スレッドで例外を出力する場合があります。どうしてこうなるのか?Windows で何かを構成する必要がありますか? Java コンソール出力 (windowsXP から) とアプレットのソース コードを以下に示します。手伝ってくれませんか....

コンソール出力:

 Exception in thread "AWT-EventQueue-2" java.lang.IllegalStateException: Applet's parent container not set up
at sun.plugin2.applet.Plugin2Manager.start(Unknown Source)
at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Java アプレットのソース コード:

 import java.applet.Applet;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.net.URLConnection;



public class FilePrintApplet extends Applet
{
    /**
     * 
     */


public void start()
{

     try {
        String server=this.getParameter("SERVER");
        String filename=this.getParameter("FILENAME");

        String osname=System.getProperty("os.name");
        String filePath="";

        URL url = new URL("http://"+server+"/openLypsaa/reports/report_oc/"+filename); 

        URLConnection connection = url.openConnection();
        InputStream is = connection.getInputStream();

        if("Linux".equals(osname))
        {
            filePath = "/tmp/OLFile";
        }
        else
        {
            filePath = "C:\\\\WINDOWS\\\\Temp\\\\OLFile";
        }

        OutputStream output = new FileOutputStream(filePath);

        byte[] buffer = new byte[256];
        int bytesRead = 0;
        while ((bytesRead = is.read(buffer)) != -1)
        {
            System.out.println(bytesRead);
            output.write(buffer, 0, bytesRead);
        }
        output.close();
        if("Linux".equals(osname))
            Runtime.getRuntime().exec("lp /tmp/OLFile").waitFor();
        else
            Runtime.getRuntime().exec("print C:\\\\WINDOWS\\\\Temp\\\\OLFile").waitFor();
     }
        catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
        catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
4

1 に答える 1