Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第三方库中的java小程序AccessControlException_Java_Applet - Fatal编程技术网

第三方库中的java小程序AccessControlException

第三方库中的java小程序AccessControlException,java,applet,Java,Applet,我在java小程序中使用了第三方库(jar),出现以下错误: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.check

我在java小程序中使用了第三方库(jar),出现以下错误:

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")
    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.checkPropertiesAccess(Unknown Source)
    at java.lang.System.getProperties(Unknown Source)
    at sfs2x.client.core.sockets.TCPSocketLayer.initNetty(TCPSocketLayer.java:63)
    at sfs2x.client.core.sockets.TCPSocketLayer.<init>(TCPSocketLayer.java:59)
    at sfs2x.client.bitswarm.BitSwarmClient.init(BitSwarmClient.java:90)
    at sfs2x.client.SmartFox.initialize(SmartFox.java:148)
    at sfs2x.client.SmartFox.<init>(SmartFox.java:127)
    at bfwd.RedemptionOnline.Client.RedemptionOnlineApplet.init(RedemptionOnlineApplet.java:29)
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.security.AccessControlException:访问被拒绝(“java.util.PropertyPermission”“*”“读,写”)
位于java.security.AccessControlContext.checkPermission(未知源)
位于java.security.AccessController.checkPermission(未知源)
位于java.lang.SecurityManager.checkPermission(未知源)
位于java.lang.SecurityManager.checkPropertiesAccess(未知源)
位于java.lang.System.getProperties(未知源)
位于sfs2x.client.core.sockets.TCPSocketLayer.initNetty(TCPSocketLayer.java:63)
位于sfs2x.client.core.sockets.TCPSocketLayer。(TCPSocketLayer.java:59)
位于sfs2x.client.bitswarm.BitSwarmClient.init(BitSwarmClient.java:90)
位于sfs2x.client.SmartFox.initialize(SmartFox.java:148)
位于sfs2x.client.SmartFox。(SmartFox.java:127)
位于bfwd.RedemptionOnline.Client.RedemptionOnlineApplet.init(RedemptionOnlineApplet.java:29)
位于com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(未知源)
位于sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(未知源)
位于java.lang.Thread.run(未知源)
我正在我的开发服务器上测试这个,并尝试连接到localhost。为什么我现在会得到这个错误,我将如何防止它在未来

好吧,我甚至自己在我的jar上签名,但它仍然会出现这个错误

at sfs2x.client.core.sockets.TCPSocketLayer.initNetty(TCPSocketLayer.java:63)
似乎是一个游戏服务器。是一个TCP/IP服务器。为什么要在客户端运行游戏服务器?我不确定你的网页访问者是否会对此感到满意。功能需求到底是什么?你有没有考虑让你的Web服务器做这项工作?< /P> 不管怎样,您需要修改小程序才能使其工作。未签名的小程序具有非常严格的安全规则(例如,否则,很容易将整个“我的文档”截取下来并发送到服务器)。基本上,您需要将您的代码发送给一些RSA签名公司,让他们检查代码,并获得一些随小程序提供的RSA证书,以便客户知道它是受信任的软件

您还可以使用自制证书对小程序进行签名,该证书的有效期仅为6个月。但最终用户在加载小程序时仍会收到安全警告;最终用户被要求确认这是否是真正值得信任的软件,是否可以执行。但是,您仍然需要将小程序main
init()
包装在一个文件中

public void init(){
AccessController.doPrivileged(新的PrivilegedAction(){
@重写公共无效运行(){
//将原始init()放在这里。
}
});
}

我正在使用Web服务器。这是客户端API,它使用套接字连接到它。如果您愿意的话,我正在尝试在javascript和java smartfoxserver之间创建一个“转换器”。我想利用我的HTML5、CSS3和javascript技能来设计一个好的UI。java小程序将处理与游戏服务器的连接,并向UI提供要显示的数据。我要试试doPriviliged,因为我付不起钱让公司签字。特别是因为我只是想先开发这个东西好吧,那不行,因为它不允许我在原始类中引用我的变量。为什么不呢?只需构造UI主类并运行它。例如,
newui().run()
或其他什么。变量显然应该在
UI
类中。我没有UI类。仅包含smarfoxClient变量和evenListener实例的主小程序类。重构它或构造小程序类本身和委托。请注意,类名“UI”只是一个虚构的示例。因此,基本上,您可以分为两个类,一个扩展
Applet
,由浏览器执行,另一个完成所有所需的工作。另一个不是在小程序的特权
init()
中构造/执行的。或者,只需重建小程序本身,而不调用其
init()
public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Void>() {
        @Override public Void run() {
            // Put your original init() here.
        }
    });
}