AccessController Applets问题

时间:2014-02-23 19:11:53

标签: java security applet access-control

我有一个applet,从applet开始在Windows上运行一些进程。 当我从另一个代码(测试)开始此过程时,此代码工作正常,并且进程从rt.exec()运行到proc.destroy()。 当我使用html调用applet时 - 进程每次只运行5秒(!!!)然后只运行,但不起作用,proc.destroy()。这对我来说非常有趣(applet中的新手)。我想,这个问题是由AccessController引起的。请帮我解决这个问题(通常运行过程超过5秒)!提前致谢。

P.S。我使用Windows,中型Java安全杠杆和applet是自签名的。它要求我'允许',applet工作。

以下是代码:

    public String startRecording(final String filename) throws IOException {
    try {
        return (String) AccessController
                .doPrivileged(new PrivilegedAction<String>() {
                    public String run() {
                        try {
                            proc = Runtime
                                    .getRuntime()
                                    .exec(cmd + filename + "." + config.getFormat());
                            //proc.waitFor();
                            return "Ffmpeg process started";
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            return e.getMessage();
                        }
                    }
                });

    } catch (Exception e) {
        return e.getMessage();
    }
}

在这里停止方法

public void stopRecording() {
    proc.destroy();
}

编辑1: 它是FFMPEG进程,它记录桌面视频并将其写入文件,也许AccessController阻止访问文件系统。

1 个答案:

答案 0 :(得分:0)

您需要处理I / O流。只需将错误(如果是ffmpeg)重定向到文件。这解决了问题(但不知道为什么:))。

相关问题