2012-01-24 2 views
0

몇 주 전에 Java를 배우기 시작했습니다. 이제는 japplet 게임을 만드는 중입니다.Java 애플릿 사용 권한이 거부되었습니다 (보안 예외)

나는 맥 OS X를 사용하고 내가 시도 할 때마다 내가

java.lang.SecurityException: Permission denied: 

가 어떻게 그렇게 JApplet에 실행 할이 문제를 해결할 수있는 다음과 같은 예외를 얻을 브라우저에서 애플릿을 실행하려면? 파일은 모두 로컬에 있으며 JApplet은 브라우저에서 로컬로 실행 중입니다.

다음은이 HTML 코드

<html> 
<head> 
    <title>Java Game!</title> 
</head> 
<body> 

    <applet code="/local/path/to/MainApplet.class" 
      width=500 
      height=500> 
    </applet> 

</body> 
</html> 

UPDATE :

다음은 전체 콘솔 출력입니다 :

Java.lang.SecurityException: Permission denied: 
file:/path/to/MainApplet.class 
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Applet2ClassLoader.java:209) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:201) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:678) 
    at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497) 
    at java.lang.Thread.run(Thread.java:680) 
Exception: java.lang.SecurityException: Permission denied: file:/path/to/MainApplet.class 

업데이트 # 2

Windows에서 같은 코드를 시도했지만 전혀 문제가 없었습니다. 이 예외를주는 것은 Mac에서만 발생합니다. 어떤 아이디어입니까?

+0

'사용 권한이 거부 뒤에 오는 비트가 무엇 :'다음 링크를 확인하실 수 있습니다 애플릿에 서명을 위해

? 귀하의 질문에 대한 답변은 "하지 마라", 또는 "서명 된 신뢰할 수있는 애플릿에서만 그렇게 할 것"일 수 있습니다. '그'가 무엇인지 밝힐 때까지는 어떤 말을하는 것이 불가능합니다. –

+1

* "몇 주 전에 자바를 배우기 시작했는데 지금은 japplet 게임을 만드는 중입니다."* 애플릿 코딩은 Java GUI 프로그래밍을 배우는 좋은 방법이 아닙니다. 그들은 [JWS] (http://stackoverflow.com/tags/java-web-start/info)를 사용하는 링크에서 시작된'JFrame '보다 (예를 들어) 개발하고 배포하는 것이 훨씬 더 까다 롭습니다. –

+0

@AndrewThompson 물론 내 앱을 애플릿으로 배포해야하는 경우 불행히도 선택의 여지가 없습니다. (Q도 업데이트했습니다 : – zentenk

답변

0

애플릿은 인터넷에서 제공되는 구성 요소이므로 애플릿이 쓰기 또는 하드 디스크 읽기와 같은 로켈 자원에 액세스 할 경우 애플릿에 서명해야하는 Java의 보안 프레임 워크가 필요합니다. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

+0

애플릿을 아무 것도 서명하지 않고 실행할 수 있습니까? 나는 개발이 시작될 때마다 그것을 항아리에 묶어서 서명 할 때마다 너무 많이 서명해야합니다 ... 또한 애플릿을 등급 지정 목적으로 공개하지 않습니다. – zentenk

+0

@zentenk - 오직 적용됩니다 로컬 파일 시스템을 사용하고 있다면 실제로 애플릿의 로컬 파일 시스템을 사용하고 있습니까? 그렇지 않으면 처음에 MainApplet.class에 액세스 할 수 없다는 불만이 있습니까? 후자처럼 들립니다. 클래스가 로컬에 있고 html이 로컬에 있으면 상대 경로를 시도하십시오. 나는. html 파일을 경로/to/local에 넣고 MainApplet.class (경로 없음)를 참조하십시오. – James

+0

@James 예, 로컬 파일 시스템을 사용하고 있습니다. 상대 경로로 참조 할 때 클래스 파일을 찾을 수 없다는 오류가 발생합니다. 또한 777에 대한 사용 권한을 설정했지만 여전히 동일한 결과를 얻습니다. – zentenk

관련 문제