본문 바로가기

java

java.io.FilePermission 에러 java.security.AccessControlException 에러

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html#FilePermission

 

애플릿은 제약사항이 있다

크게 네트워크 접근과 파일 접근에 대한 제약이다

 

특히 제약사항이 발생하면 아래와 같은 exception을 발생시킨다

java.security.AccessControlException: access denied (java.io.FilePermission)

java.security.AccessControlException: access denied (java.net.SocketPermission)

 

그럴 경우는

애플릿이 실행되는 jre의 java.policy파일을 다음과 같이 추가하면 된다

 

java.io.FilePermission 관련일 경우는

permission java.io.FilePermission "<<ALL FILES>>", "read, write, delete, execute";

 

java.net.SocketPermission 관련일 경우는

permission java.net.SocketPermission "localhost:1024-", "listen,connect,accept,resolve";

 

아니면 모두를 허용하려면

permission java.security.AllPermission;을 해주면 위의 두개를 포함한 모든 제약을 제거해 준다

 

추가 참고자료

http://www.javastudy.co.kr/docs/jhan/javaadvance/win.html

 

 

또한 다른 해결방법으로는 파일을 배포하는 방법인데

 

user.home디렉토리 보통은 C:\Documents and Settings\Administrator

의 폴더에 .java.policy파일을 두면 된다.

.java.policy파일을 만드는 방법은 policytool을 이용하면 된다

http://blog.naver.com/berimbau?Redirect=Log&logNo=130008098824

 

 java.lang.RuntimePermission 에러 : 파일 경로를 넣어도 되고 해당 경로의 *을 넣어도 된다

grant codeBase "file:C:\\<your-file-name>" {
     permission java.security.AllPermission;
};