Java小程序无法访问文件

Java Applet Can't Access Files

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

经过一些在线搜索后,我发现 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 文件。有什么想法吗?

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

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

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