我的applet有这段代码片段(基本上是从同一目录下的文件中读取)。
Scanner input = new Scanner(getClass().getResourceAsStream(a_file_name));
我正在使用Applet来查看如何读取服务器上托管的文件(或在本地保存在与* .class文件相同的目录中)。
我在Eclipse中选择了java类并选择了" Run as Applet"。我能够读取文件(保存在workspace / bin目录中)。所以,它运作良好。
我在远程服务器上托管了(* .class文件; * .txt文件和* .html)文件。通过将URL添加到"配置Java"中的安全列表,获得对URL的完全权限。我能够读取该文件。所以,它运作良好。
然后我在我的机器上本地启动了* .html文件(同样,我通过将其添加到"配置Java"中的安全列表,给予URL完全权限。)和* .html,* .txt文件和* .class文件都在eclipse工作区项目bin目录中。但是,它不起作用。下面的代码抛出异常。
扫描仪输入=新扫描程序(getClass()。getResourceAsStream(a_file_name));
案例[1]:没有安全URL这样的东西,因为我从Eclipse启动(作为Applet运行) 案例[2]:安全URL以http://开头 案例[3]:安全URL以file:/// D开头:/apps/eclipse/workspace/AppletSnippet/bin/index.html
你能否解释为什么它在Case [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)
答案 0 :(得分:0)
行。问题解决了。
我只有一个* .class和一个正在阅读的文本文件* .txt。
案例1(从Eclipse作为Applet运行)和案例2(从远程服务器运行) - 这些选项对它没有任何问题。
但是,在案例3中,如果我通过打开HTML文件在本地运行它,则getClass()。getResourceAsStream(a_file_name)将返回NULL。
所以,我用* .class和* .txt文件创建了一个* .jar文件;并在我的HTML中指定了ARCHIVE属性。 案例3也在运作。
由于