Java Netbeans中的FileNotFoundException

Java Netbeans中的FileNotFoundException,java,netbeans,Java,Netbeans,我在Netbeans中有一个java应用程序项目。我只有一节课。 我试着这么做 FileReader fr = new FileReader("sal.html"); 我在同一个包下有sal.html文件。但我在运行时遇到以下错误: Errorjava.io.FileNotFoundException: sal.html (The system cannot find the file specified) 我认为您的问题在于文件的相对路径。尝试使用文件的完整路径声明FileReader。F

我在Netbeans中有一个java应用程序项目。我只有一节课。 我试着这么做

FileReader fr = new FileReader("sal.html");
我在同一个包下有sal.html文件。但我在运行时遇到以下错误:

Errorjava.io.FileNotFoundException: sal.html (The system cannot find the file specified)

我认为您的问题在于文件的相对路径。尝试使用文件的完整路径声明
FileReader
FileNotFoundException
表示找不到文件

netbeans的构建文件夹在没有文件sal.html的情况下是不同的


尝试使用绝对路径代替相对路径

将文件放入主项目文件夹。不发送到任何子文件夹,如src或bin等。然后它将检测到您的文件。

我猜Netbeans正在从项目的根文件夹调用JVM。引用以下内容的一部分:

默认情况下,java.io包中的类总是根据当前用户目录解析相对路径名。该目录由系统属性user.dir命名,通常是调用Java虚拟机的目录

要验证相对路径分辨率,您可以尝试:

System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());
然后,您可以将文件移动到java查找它的任何地方。很可能是项目的根文件夹

您还可以考虑使用类加载器使用“<代码> GETCARCH”(.GETRealSuffStRead)(“Sal.html”)来读取包内的资源;代码>。这是访问资源的首选方式,因为您不再需要担心绝对路径和相对路径。如果资源在类路径中,则可以访问它。更多信息,请参阅

这不是“未找到文件”问题。 这是因为每个类都拥有自己的资源(可以是文件、图像等),这些资源只能通过下面的resource loader语句进行访问:

InputStream in=this.getClass().getResourceAsStream(“sal.html”)

唯一的修复方法是,您将获得一个InputStream,而不是一个文件。
希望这有帮助。

单击Netbeans中的文件视图。将sal.html移动到项目文件夹。这样你就会看到它像这样

- JavaProject
  + build
  + lib
  + nbproject
  + src
  + build.xml
  manifest.mf
  sal.html
现在

会有用的

System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());
然后它将显示JVM从何处检索文件。通常用于
/home/username/NetbeansProjects/ApplicationName/
中的linux


将您的资源或文件放入此路径

当我从控制台手动运行时,它运行正常!!!还有一个疑问!您说过调用JVM的目录存储在user.dir系统属性中。我运行了上面两行代码,得到了相同的输出<代码>C:\Users\Onie\Documents\NetBeansProjects\Testapp\sal.html
C:\Users\Onie\Documents\NetBeansProjects\Testapp
那么它应该正常工作了吗?我还尝试了
newfilereader(“C:\\Users\\Onie\\Documents\\NetBeansProjects\\Testapp\\sal.html”)失败了!同样的错误
Errorjava.io.FileNotFoundException:C:\Users\Onie\Documents\NetBeansProjects\Testapp\sal.html(系统找不到指定的文件)
如果文件的实际位置=新文件(“文件”)的输出。getAbsolutePath()
,则不应抛出
FileNotFoundException
。你说你的代码在从命令行调用时可以工作吗?是的。。当我从cmd行运行它时,没有FileNotFoundException
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());