java.security.AccessControlException при использовании класса java.awt.Robot для захвата экрана в апплете
Мне требуется захватить экран веб-страницы, чтобы сохранить его на компьютере клиента всякий раз, когда клиент нажимает кнопку печати экрана. Для этого я погуглил и получил это, вставив апплет с подписью (доверенный апплет) в мою страницу JSP, я могу сделать это. Поэтому я пытаюсь с помощью простого апплета для отдельного Java-класса. В случае успеха я могу попробовать это для JSP после подписания апплета. Что я пробовал это:
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Date;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
/* <applet code = MyApplet.class width="500" height="500">Java Applet for screen capture</applet> */
public class MyApplet extends Applet {
/* Applet Life cycle Methods */
public void start()
{
try{
// capture the whole screen
BufferedImage screencapture = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
// Save as JPEG
File file = new File("D:/screencapture.jpg");
ImageIO.write(screencapture, "jpg", file);
System.out.println("screen capture finished : ");
}//try closing...
catch(Exception e)
{
System.out.println("screen capture error : ");
e.printStackTrace();
}//catch closing...
}//start closing...
public void stop()
{
}
}
Я получаю это:
java.security.AccessControlException: access denied ("java.awt.AWTPermission" "createRobot")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
at java.security.AccessController.checkPermission(AccessController.java:560)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.awt.Robot.checkRobotAllowed(Robot.java:170)
at java.awt.Robot.init(Robot.java:134)
at java.awt.Robot.<init>(Robot.java:96)
at MyApplet.start(MyApplet.java:23)
at sun.applet.AppletPanel.run(AppletPanel.java:474)
at java.lang.Thread.run(Thread.java:722)
Любая помощь, любая идея будет оценена.