Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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小程序无法访问本地文件系统_Java_Browser_Applet_Filesystems_Signed Applet - Fatal编程技术网

已签名的Java小程序无法访问本地文件系统

已签名的Java小程序无法访问本地文件系统,java,browser,applet,filesystems,signed-applet,Java,Browser,Applet,Filesystems,Signed Applet,我已经编写了一个小程序,可以比较文件。它计算CRC32校验和,然后输出具有相同校验和的文件 它在appletviewer和独立应用程序中运行良好。所以我已经打包并签名了。 但是,当我在浏览器中启动它时,它不起作用 很好。浏览器询问此签名的权限。它显示了JFileChooser对话框,我可以选择一个目标文件夹 问题是它什么也不返回。当涉及到文件迭代或校验和计算时,它似乎会悄然崩溃。(我使用apache.commons FileUtils进行文件迭代和校验和计算) 它可以打开一个.txt文件并读取其

我已经编写了一个小程序,可以比较文件。它计算CRC32校验和,然后输出具有相同校验和的文件

它在appletviewer和独立应用程序中运行良好。所以我已经打包并签名了。 但是,当我在浏览器中启动它时,它不起作用

很好。浏览器询问此签名的权限。它显示了JFileChooser对话框,我可以选择一个目标文件夹

问题是它什么也不返回。当涉及到文件迭代或校验和计算时,它似乎会悄然崩溃。(我使用apache.commons FileUtils进行文件迭代和校验和计算)

它可以打开一个.txt文件并读取其内容。我在不同的浏览器、不同的安全设置中测试过它,甚至在Linux上

我尝试使用“AccessController.doPrivileged”重写代码,如下所示:

@覆盖
公共阵列列表doInBackground(){
return AccessController.doPrivileged(新的PrivilegedAction(){
公共ArrayList运行(){…});
…但它还是什么都不做.有什么问题吗


提前感谢。

问题是apache.commons和Guava库在applet中无法正常工作。
手工重写此代码后,它终于开始工作了。

问题是apache.commons和Guava库在applet中无法正常工作。
手动重写此代码后,它最终会工作。

是否出现异常?请尝试将java控制台设置为每次小程序运行时都显示。在那里,您可以读取(并在此处复制)使小程序无法正常工作的错误。不,没有异常。在“跟踪级别5”上当小程序启动时,控制台显示了很多条目,但所有条目似乎都正常。当我第一次按下运行按钮时,会显示奇怪的条目:网络:未找到缓存条目[url:file:/C:/Users/pavlo/Desktop/applet/,version:null]是否出现异常?请尝试将java控制台设置为每次小程序运行时都显示。在那里,您可以读取(并在此处复制)使小程序无法正常工作的错误。不,没有异常。在“跟踪级别5”上当小程序启动时,控制台显示了很多条目,但所有条目似乎都正常。当我第一次按下运行按钮时,会显示奇怪的条目:网络:未找到缓存条目[url:file:/C:/Users/pavlo/Desktop/applet/,version:null]
    @Override
public ArrayList<String> doInBackground() {

    return AccessController.doPrivileged(new PrivilegedAction<ArrayList<String>>() {
        public ArrayList<String> run() {...});