【发布时间】:2015-06-26 15:56:24
【问题描述】:
我正在尝试通过使用 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 文件。有什么想法吗?
【问题讨论】:
-
"..需要对特定文件的读取权限。" 这个“特定文件”是由您还是最终用户提供的?它是只读的还是用于读/写的?另外——为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。
-
这不是老师的作业。我需要将 Java 应用程序嵌入到 Web 浏览器中,并且我假设小程序是这样做的唯一方法。