gpt4 book ai didi

java - Applet 签名抛出 : java. security.AccessControlException。我怎样才能让它运行?

转载 作者:行者123 更新时间:2023-12-01 16:03:36 27 4
gpt4 key购买 nike

经过几个小时的工作(我不是java程序员),我已经成功打包并放入一个小程序中,该小程序可以通过ftp上传到远程服务器。主文件是“invia.jar”内的“prova.class”;我使用第三方库,放置在“edtftpj.jar”中。我已对这两个文件进行了签名,并使用以下代码将它们包含在页面中:

Index.html

<applet width="300" height="300"  classpath="./" code="prova.class" archive="invio.jar,edtftpj.jar"> </applet>

现在,当我将浏览器指向我的页面时,我在控制台上发现了此消息:

Could not read property 'edtftp.log.level' due to security permissions
Could not read property 'edtftp.log.log4j' due to security permissions
Could not read property 'edtftp.log.log4j' due to security permissions
java.security.AccessControlException: access denied (java.net.SocketPermission www.artkiller-web.com resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getByName(Unknown Source)
at com.enterprisedt.net.ftp.FTPClient.connect(FTPClient.java:966)
at com.enterprisedt.net.ftp.FileTransferClient.connect(FileTransferClient.java:386)
at prova.start(prova.java:44)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

知道如何解决这个问题吗?

提前谢谢你

阿托啤酒

最佳答案

您需要将连接 URL 包装在特权代码块中。

看起来您在读取属性文件时也遇到了问题,您可以将属性文件直接打包到 jar 中,如果您尝试从客户端计算机读取属性文件,则需要将该代码包装在特权 block 中代码也是如此。

这是我在另一个答案中使用的一段代码,用于通过访问 Controller 获取 URL。

 try 
{
final String imageURL = "http://www.google.com/intl/en_ALL/images/logo.gif";
URL url = (URL) AccessController.doPrivileged(new PrivilegedAction()
{

public Object run()
{
try
{
return new URL(imageURL);
}
catch (MalformedURLException e)
{
e.printStackTrace();
return null;
}

}
});

if(url == null)
{
// Something is wrong notify the user
}
else
{
// We know the url is good so continue on
img = ImageIO.read(url);
}

}
catch (IOException e)
{
System.out.println(e);
}

关于java - Applet 签名抛出 : java. security.AccessControlException。我怎样才能让它运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com