麻烦从Java小程序内以书面文件 [英] Trouble writing file from within a java applet

查看:265
本文介绍了麻烦从Java小程序内以书面文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是小程序写道:结果
更新出现

I have created simple Java class to test file writes from applets:
update appeared

public class localfile extends Applet{
public localfile(){
    try {
        File f = new File("testfile.txt");
        BufferedWriter out = new BufferedWriter(new FileWriter(f,true));
        out.write("test");
        out.close();
    }
    catch(Exception x)
       System.err.println(x.toString());
   }
}

我已经创建并签署的jar:

I have created and signed jar:

jar cvf localfile.jar localfile.java
jarsigner localfile.jar yourkey

HTML如下:
    <小程序code =localfile.class档案=localfile.jar,宽度= 300,高度= 600 >

我得到我每次运行这个小程序的时间错误是:

The error I get every time I run this applet is:

java.lang.SecurityException: trusted loader attempted to load sandboxed resource from file:/home/w/test/
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(CPCallbackHandler.java:308)
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(CPCallbackHandler.java:121)
at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(CPCallbackHandler.java:473)
at sun.plugin2.applet.Plugin2ClassLoader.checkResource(Plugin2ClassLoader.java:701)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:206)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:520)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:2940)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1444)
at java.lang.Thread.run(Thread.java:619)
Exception: java.lang.SecurityException: trusted loader attempted to load sandboxed resource from file:/home/w/test/

什么是奇怪的:我已经创建了类似的小程序来读取文件和它的作品确定

What is strange: I have created similar applet to read files and it works ok.

有什么想法?

我是同时运行的浏览器和applet浏览器这个小程序。什么是奇怪给予小程序不能在applet浏览器工作,并抛出异常,但在浏览器,它是好的。

I was running this applet on both browser and applet viewer. What is strange given applet doesn't work on applet viewer and throws exception, but on browser it is fine.

java.security.AccessControlException: access denied (java.util.PropertyPermission java.security.policy write)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.System.setProperty(System.java:725)
at localfile.<init>(localfile.java:15)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:619)

所以,身边这种奇怪的行为,我认为我的问题解决了。谢谢大家:)

So, beside this strange behaviour I consider my problem solved. Thanks everyone:)

推荐答案

对于某些finagling,您可以在一个罐子里的策略文件。请参阅SO问题 JAR政策文件以获取更多信息。

With some finagling, you can include a policy file in a jar. Refer to the SO question jar policy file for more information.

另外,考虑一个Java Webstart的应用程序,它可以读取/更容易地写入文件。

Otherwise, consider making a Java WebStart application, which can read/write files more easily.

这篇关于麻烦从Java小程序内以书面文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆