【问题标题】:Java - Applet - Reading the file hosted in the same directory as applet classJava - Applet - 读取与小程序类位于同一目录中的文件
【发布时间】:2014-09-15 05:18:56
【问题描述】:

我的小程序有这个代码sn-p(基本上是从同一目录下的文件中读取)。

Scanner input = new Scanner(getClass().getResourceAsStream(a_file_name));

我正在使用 Applets 来了解如何读取托管在服务器上的文件(或与本地 *.class 文件保存在同一目录中)。

  1. 我在 Eclipse 中选择了 java 类并选择了“Run As Applet”。我能够读取文件(保存在工作区/bin 目录中)。所以,它工作得很好。

  2. 我在远程服务器上托管了(*.class 文件;*.txt 文件和 *.html)文件。通过将 URL 添加到“配置 Java”中的安全列表来授予对 URL 的完全权限。我能够读取文件。所以,它工作得很好。

  3. 然后我在我的机器上本地启动了 *.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


【解决方案1】:

好的。问题解决了。

我只有一个 *.class 和一个正在读取 *.txt 的文本文件。

案例 1(从 Eclipse 作为 Applet 运行)和案例 2(从远程服务器运行)——这些选项没有任何问题。

但是,在案例 3 中,如果我通过打开 HTML 文件在本地运行它,getClass().getResourceAsStream(a_file_name) 将返回 NULL。

所以,我用 *.class 和 *.txt 文件创建了一个 *.jar 文件;并在我的 HTML 中指定了 ARCHIVE 属性。 那么案例 3 也有效。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2011-08-18
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多