파일을 컴퓨터에 다운로드 한 다음 관련 편집기에서 열 수있는 애플릿을 만들려고합니다 (파일을 저장할 때 다시 업로드해야 함). 다시). 그러나 실제로 작동시키기까지 몇 시간을 허비하기 전에 실제로 관리 할 수 있는지 확인해야합니다 (애플릿이 아닌 Java Desktop Application으로 수행했습니다).파일에 쓸 때 자체 서명 애플릿이 발생했습니다.
그래서 존재하지 않는 파일을 만드는 간단한 애플릿을 작성했습니다. 앱은 이고으로 서명되고 브라우저에로드됩니다. 다음은 화면에 기록됩니다 다음
IO 예외가 : 나는 다른 오류를 표시 한
액세스가 거부되었습니다, 그래서 실패하는 일을 알고있다.
import javax.swing.*;
import java.security.*;
import java.io.*;
public class DocumentApplet extends JApplet
{
private static final long serialVersionUID = -2354727776089972258L;
public void start()
{
add (new JButton ("Hello, World"));
AccessControlContext acc = (AccessControlContext) System.getSecurityManager().getSecurityContext();
try
{
acc.checkPermission(new FilePermission("test.txt", "write"));
}
catch (SecurityException e)
{
add (new JLabel ("Permission Exception: " + e.getMessage()));
return;
}
try
{
File f = AccessController.<File>doPrivileged(new PrivilegedAction<File>()
{
public File run()
{
return new File ("test.txt");
}
});
if (! f.exists())
{
f.createNewFile();
}
}
catch (AccessControlException e)
{
add (new JLabel ("Access: " + e.getMessage()));
}
catch (IOException e)
{
add (new JLabel ("IO Exception: " + e.getMessage()));
}
}
}
그것은 발생되는 마지막 예외 : 아래 내 애플릿입니다. 내가하는 첫 번째 일은 권한을 확인하는 것입니다. 그 검사는 실패하지 않습니다.
애플릿은 자체 서명되었지만 이는 일시적인 것입니다. 애플릿이 실패한 경우 인증서를 구입하는데 수백 달러를 지출하고 싶지 않습니다..
애플릿 뷰어으로 앱을 실행하면 코드가 작동합니다. 괜찮습니다.하지만 실제 인증서를 구입하면 작동한다는 것을 알아야합니다.
HTML 코드 :
<applet code="DocumentApplet" archive="applet.jar" width="300" height="200">
</applet>
환경 : Windows7의 + JDK 1.7.0_05
PS : 나는 또한 지난 2 일에 유래에 읽기 및 구글 검색을 보냈다. 난 강력하게 내가 어떻게해야하고 모든 것을 ... 나는 그 이유가 무엇인지 전혀 모른다
그냥 브라우저에서 관리자 권한으로 실행하여 쓰기가 가능한지 확인하십시오. –
던져진 예외의 스택 추적은 무엇입니까? – trashgod
모든 *** 캐치에 대해,'Throwable.printStackTrace()'를 호출하십시오. - 당신이 그 조언을 보지 않고 2 일 동안 SO를 돌았다고 놀랍습니다! –