2012-09-02 53 views
1

我做了一個運行記事本小java代碼:java.lang.reflect.invocationtargetexception在瀏覽器

import java.io.IOException; 

public class pad { 

    public static void main(String[] args) throws IOException, InterruptedException { 
     execute(); 
    } 

    private static void execute() throws IOException, InterruptedException { 
     Process exec = Runtime.getRuntime().exec("notepad.exe"); 
     exec.waitFor(); 
    } 
} 

代碼工作之前罰款,但建設成一個.jar文件,之後從HTML頁面中運行時它給了我一個java.lang.reflect.invocationtargetexception錯誤,這裏是html源代碼:

<applet code="pad.class" 
    archive="not.jar" 
    width=400 height=400> 
</applet> 

請注意,我仍然對Java,感謝您的幫助。

+0

即使你把它作爲applet運行,它仍然可能不起作用。小程序通常是不可信的代碼源,我懷疑Java的安全管理器會允許不可信任的代碼源用'Runtime.exec'執行任何事情。 – Jeffrey

回答

1

爲了在網絡瀏覽器中運行您的代碼,pad類需要擴展Applet類(或者如果您使用Swing - JApplet)。

你需要知道的第一件事,就是小程序沒有使用main(String[])方法開始 - 他們有一個像lifecycle methodsinit()start()

有在Oracle的網站一個很好的tutorial on Applets,我強烈建議你檢查出來。

+0

所以我改變它「公共類墊延伸小程序」,它不顯示錯誤了,但它不執行記事本,我做錯了什麼?ps:我現在要讀課程 –

+0

首先,在applet的生命週期方法之一中調用你的execute()方法,例如'start(){execute(); }'。另請參閱@ Jeffrey的評論 - 您需要簽署您的小程序才能運行外部程序。 – npe

+0

thx,我得到了工作感謝你 –