【发布时间】:2014-09-15 05:18:56
【问题描述】:
我的小程序有这个代码sn-p(基本上是从同一目录下的文件中读取)。
Scanner input = new Scanner(getClass().getResourceAsStream(a_file_name));
我正在使用 Applets 来了解如何读取托管在服务器上的文件(或与本地 *.class 文件保存在同一目录中)。
我在 Eclipse 中选择了 java 类并选择了“Run As Applet”。我能够读取文件(保存在工作区/bin 目录中)。所以,它工作得很好。
我在远程服务器上托管了(*.class 文件;*.txt 文件和 *.html)文件。通过将 URL 添加到“配置 Java”中的安全列表来授予对 URL 的完全权限。我能够读取文件。所以,它工作得很好。
-
然后我在我的机器上本地启动了 *.html 文件(同样,我通过将 URL 添加到“配置 Java”中的安全列表中来授予对 URL 的完整权限)。以及 *.html、*.txt 文件和*.class 文件位于 Eclipse 工作区项目 bin 目录中。但是,它不起作用。下面的代码正在引发异常。
扫描器输入 = new Scanner(getClass().getResourceAsStream(a_file_name));
案例 [1]:没有安全 URL 这样的东西,因为我是从 Eclipse 启动的(作为 Applet 运行) 案例[2]:安全URL以http://开头 案例[3]:安全URL以file:///D:/apps/eclipse/workspace/AppletSnippet/bin/index.html开头
您能否解释一下为什么它在案例 [3] 中不起作用?
顺便说一句,这是我在 [3] 的情况下遇到的例外情况
java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at AppletSnippet.readFromTextFile(AppletSnippet.java:46)
at AppletSnippet.init(AppletSnippet.java:100)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
“你能解释一下为什么它在案例 [3] 中不起作用吗?” 因为它抛出了一个异常。说到这里,总是复制/粘贴错误或异常输出。
-
不要将堆栈跟踪放在不可读的 cmets 中,将其编辑到问题中(并使用代码格式)。
标签: file security permissions nullpointerexception applet