在标准的java程序中,我可以执行以下操作:
import java.io.*;
public class PingApp
{
public static void main(String args[])
{
System.out.println("about to try to launch ping...");
try
{
Process p = Runtime.getRuntime().exec("ping -o google.com");
p.waitFor();
BufferedReader reader=new BufferedReader(
new InputStreamReader(p.getInputStream())
);
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
line=reader.readLine();
}
}
catch(IOException e1) {
System.err.println(e1.getMessage());
}
catch(InterruptedException e2) {
System.err.println(e2.getMessage());
}
System.out.println("finished.");
}
}
我想在java applet中做同样的事情,除了打印我捕获到终端的输出,我想在浏览器的applet窗口中显示它。
就是这样。
当我尝试将此代码放入applet时,我遇到的错误是:
Exception in thread "AWT-EventQueue-3" java.security.AccessControlException: access denied ("java.io.FilePermission" "<<ALL FILES>>" "execute")
有什么方法可以解决这个AccessControlException吗?
感谢。
答案 0 :(得分:2)
这是Java的一项安全功能,可以阻止您恶意使用用户的终端或等效内容,以及读取或写入驱动器。
解决这个问题的唯一方法是签名小程序。
答案 1 :(得分:1)