3

我有以下方法,该方法旨在将信息附加到文件中,但出现以下错误。在该方法中,我使用了继承自 java.io.InputStream 的部分 robocode API

文件和文件夹的所有权限似乎都很好,并且文件确实存在

static public void logInfo(String info) 
{        

    RobocodeFileWriter in;
    try {
        in = new RobocodeFileWriter("log.txt");
        in.append(info);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       


}

SYSTEM: 初始化 itc.solomon 时出错 SYSTEM: java.security.AccessControlException: 阻止 itc.solomon 访问: (java.io.FilePermission log.txt read): 你只能读取你自己的根包目录中的文件。java.security.AccessControlException:阻止 itc.solomon 访问:(java.io.FilePermission log.txt 读取):您只能读取自己根包目录中的文件。在 robocode.security.RobocodeSecurityManager.handleSecurityProblem(Unknown Source) 在 robocode.security.RobocodeSecurityManager.checkPermission(Unknown Source) 在 java.lang.SecurityManager.checkRead(SecurityManager.java:888) 在 java.io.File.exists(File. java:748) 在 robocode.RobocodeFileOutputStream.(Unknown Source) 在 robocode.RobocodeFileOutputStream.(Unknown Source) 在 robocode.RobocodeFileWriter。

4

2 回答 2

2

请参阅此示例: http ://code.google.com/p/robocode/source/browse/robocode/trunk/robocode.samples/src/main/java/sample/SittingDuck.java

我想getDataFile("log.txt")会给你适当的位置。

于 2010-03-09T11:12:03.023 回答
1

我已经搜索了一些关于这个问题的信息。似乎包中有一个错误,通过以下robocode方式尴尬地解决了

while (!dataIsLoaded) {
   try {
       tryToReadData;
       dataIsLoaded = true;
   } catch (AnyException e) {}
}

出于多种原因(忽略异常、忙于等待等),这是解决问题的一种非常糟糕的方法。更明智的方法是将 robocode 包降级到以前的更稳定的版本。

在此处查看搜索结果

于 2010-02-21T05:54:20.553 回答