我正在尝试使用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文件。有什么想法吗?
答案 0 :(得分:0)
您有两个基本选择。您可以创建策略文件,使applet可以访问本地文件系统。这里有一个详细的教程:
http://docs.oracle.com/javase/tutorial/security/tour1/index.html
您的另一个选择是使用JNLP启动applet。这将使您可以访问本地计算机上的各种资源。这是最短的路径。