Java Applet无法访问文件

时间:2015-06-26 15:56:24

标签: java html japplet

我正在尝试使用HTML文件从已签名的jar启动Java Applet。当我从Netbeans运行它时,applet工作正常,但我理解这是因为applet的安全限制。我收到的错误消息与程序需要对特定文件的读访问权有关。

在网上搜索之后我发现doPrivileged()应该用于这种行为,所以我在我的代码中添加了它,但我仍然收到错误信息。

HTML -

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Launch Applet</title>
<body>
<tr>
<td><center>
    <applet
        archive=widget.jar
        code=widget.class
        width=1100
        height=1100>  
    </applet>
</center></td>
</body>

Java中的函数 -

class OpenThread implements Runnable{
    public void run(){
        try {
            AccessController.doPrivileged(new PrivilegedAction<Object>() {
                public Object run() {
                    if(new File(path+"\\loadFile.txt").exists()){
                         System.out.println("true");
                    }
                     return null;
                }
            }); 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

为了调试目的,我调整了线程,最终将再次在代码中使用txt文件。我不确定我的JAR文件是否签名不正确,如果jar中的MANIFEST文件应该包含文件权限,或者我是否必须编辑我的java.policy文件。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您有两个基本选择。您可以创建策略文件,使applet可以访问本地文件系统。这里有一个详细的教程:

http://docs.oracle.com/javase/tutorial/security/tour1/index.html

您的另一个选择是使用JNLP启动applet。这将使您可以访问本地计算机上的各种资源。这是最短的路径。