gpt4 book ai didi

java - 在我的 GWT 应用程序运行时 (java.io.FilePermission) 上没有对文件的读/写访问权限

转载 作者:行者123 更新时间:2023-11-29 03:59:35 25 4
gpt4 key购买 nike

我在尝试运行我的 GWT 应用程序时遇到此运行时错误:

­java.security.AccessControlException: access denied (java.io.FilePermission C:\Users\Admin\AppData\Local\Temp\tmp-andami read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)

(堆栈跟踪较长,但我想这足以聚焦问题源)

我在 Google 中搜索过这个问题,一般来说,我发现更改 java.policy 文件(位于 C:\Program Files\Java\jre6\lib\security),所以我做了类似的事情:

permission java.io.FilePermission "<<ALL FILES>>" , "read";
permission java.io.FilePermission "C:\Users\Admin\AppData\Local\Temp\tmp-andami" , "read";
permission java.security.AllPermission;

问题是在那个 PATH 文件或文件夹中“tmp-andami”不存在(也许它是隐藏的),所以我不知道是权限问题还是这个文件不存在的问题,因此无法读取。

所有这些都来 self 代码中写的一行:

private static final String tempDirectoryPath = 
System.getProperty("java.io.tmpdir")+"/tmp-andami";

但是我需要在此处或在另一个 PATH 中编写此文件,我不在乎。我试着把文件写在“C:/”下,但我得到了同样的结果。

关于这个问题有什么想法吗?我做错了什么吗?

非常感谢!


但我使用的是从“服务器”包端访问我的文件系统,而不是包含可翻译代码的“客户端”。

我认为这样做是可能的。

那么,我能做什么呢?它应该存在一种访问本地文件系统的方法,不是吗?或者至少是一种替代方法。

然后,将此文件放在本地部署的应用程序文件系统下怎么样?我的意思是,在“ war ”目录或类似的目录下。如果浏览器可以访问这个文件夹来读取 .jars 等等,是否可以做同样的事情但有另一个目的?

感谢您的帮助!

最佳答案

GWT 将您的代码编译成在浏览器中运行的 JavaScript。 JavaScript 无法访问您的文件系统(有充分的理由)。

java.io.FilePermission 未在 JRE Emulation Reference 中列出所以你不能在你的客户端代码中使用它,所以它甚至不能用 GWT 编译。

关于java - 在我的 GWT 应用程序运行时 (java.io.FilePermission) 上没有对文件的读/写访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340570/

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