클라이언트가 화면 인쇄 버튼을 클릭 할 때마다 클라이언트 컴퓨터에 저장하기 위해 웹 페이지 화면을 캡처해야합니다. 이걸 내가 봤 거든 애플릿을 서명 (신뢰할 수있는 애플릿)을 포함하여 내 JSP 페이지에 포함 시켜서이 작업을 수행 할 수 있습니다. 그래서 독립형 자바 클래스를위한 간단한 애플릿을 시도하고있다. 성공에 나는 애플릿에 서명 한 후 jsp를 시도 할 수있다. 내가 시도하는 것입니다 :이 무엇입니까java.security.AccessControlException 애플릿에서 화면 캡처를 위해 java.awt.Robot 클래스를 사용할 때
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)
어떤 도움이, 어떤 생각이 appriciated됩니다.
* "나는이 문제를 해결했습니다." 생산에 이르기까지 단순히 문제를 지연 시켰습니다. 프로덕션 시간에 정책 파일은 실용적이지 않을 것이며 앱이됩니다. '로봇 '을 사용하기 위해서는 디지털 서명 (사용자)과 신뢰 (최종 사용자)가 필요합니다. –
@ Andrew : 나는 당신을 못 봤어요? 왜 그것이 "생산까지 문제를 지연 시켰는지"와 같은 이유에 대해 좀 더 설명해 주시겠습니까? LISAR 기술을 기반으로하는 GIS Scanning 회사에서 일하고 Java 개발을 위해 나는 한 사람의 군대입니다 (온라인 도움을 제외하고는 아무도 저를 도와 줄 수 없습니다). –
최종 사용자가 정책 파일을 엉망으로 만들 것이라고 예상 할 수 없습니다. 그것은 안전하지 않으며, 그들의 이해를 넘어서는 길입니다. 따라서 최종 사용자의 컴퓨터에서 작동하는 신뢰할 수있는 애플릿을 얻으려면 디지털 서명이 필요합니다. 디지털 서명이 필요하기 때문에 지금까지도 작업 할 수 있습니다. Ant 빌드 스크립트는 각 빌드를 Jar하고 서명 할 수 있습니다. –