Java 文件对象出现空异常错误

Java 文件对象出现空异常错误,java,file,nullpointerexception,runtime-error,Java,File,Nullpointerexception,Runtime Error,我正在Ubuntu 12.04中使用Netbeans IDE运行java代码 我试图创建一个文件对象,该对象具有指向文件目录的路径名,并使用方法listFiles()返回此文件目录下的路径名数组 守则: File allFile=new File("~/Desktop/matlab/CAT_00"); File[] fileList = allFile.listFiles(); 然而,当我运行代码时,我得到一个异常声明 Exception in thread "main" java.lang.

我正在Ubuntu 12.04中使用Netbeans IDE运行java代码

我试图创建一个文件对象,该对象具有指向文件目录的路径名,并使用方法listFiles()返回此文件目录下的路径名数组

守则:

File allFile=new File("~/Desktop/matlab/CAT_00");
File[] fileList = allFile.listFiles();
然而,当我运行代码时,我得到一个异常声明

Exception in thread "main" java.lang.NullPointerException
    at CatTest.main(CatTest.java:29)
Java Result: 1
看来我的allFile对象包含空对象?我自己也不是很确定。我试着检查我想要的目录路径是“~/Desktop/matlab/CAT\u 00”,它是正确的。我尝试使用调试模式检查这两行代码,发现listFiles()返回了此异常错误。但是,我不理解为什么会出现空异常错误,因为在我创建文件对象时使用的CAT_00主目录下有文件和目录,因此应该返回这些文件和目录的路径名数组


非常感谢您的帮助

出现NullPointerException的原因是,运行listFiles()时,提供的路径实际上并不存在

在Java中,您不能直接从~/引用文件,因为Java查看文件路径就像它们是相对于运行位置的URL一样。在您的例子中,因为您是在Eclipse中运行的,所以它是相对于您的Eclipse工作区的。相反,你应该使用的是

String homeDir = System.getProperty("user.home");
File allFile = new File(homeDir + "/Desktop/matlab/CAT_00");
File[] fileList = allFile.listFiles()

System.getProperty(“user.home”)
将获得用户的绝对主目录路径,而不管他们运行的是什么操作系统。

获得NullPointerException的原因是,当您运行listFiles()时,提供的路径实际上并不存在

在Java中,您不能直接从~/引用文件,因为Java查看文件路径就像它们是相对于运行位置的URL一样。在您的例子中,因为您是在Eclipse中运行的,所以它是相对于您的Eclipse工作区的。相反,你应该使用的是

String homeDir = System.getProperty("user.home");
File allFile = new File(homeDir + "/Desktop/matlab/CAT_00");
File[] fileList = allFile.listFiles()

System.getProperty(“user.home”)
要做的是获取用户的绝对主目录路径,不管他们运行的是什么操作系统。

要更快获得更好的帮助,请发布一个.BTW-change
File allFile=new文件(“~/Desktop/matlab/CAT_00”)
要立即打印出
allFile.exists()
&
allFile.isDirectory()
@andrewhompson,很抱歉,SSCCE是什么意思?谢谢,我试过了,然后贴了results@BhavikShah,是的,它是一个包含文件和目录的目录,类似的帖子可能会有所帮助&为了更快地获得更好的帮助,发布一个.BTW-change
File allFile=new File(“~/Desktop/matlab/CAT_00”)
要立即打印出
allFile.exists()
&
allFile.isDirectory()
@andrewhompson,很抱歉,SSCCE是什么意思?谢谢,我试过了,然后贴了results@BhavikShah,是的,这是一个包含文件和目录的目录,类似的帖子可能会有所帮助&谢谢nhydock和Andrew!你们两人提供的帮助帮助我继续前进!=)谢谢恩海多克和安德鲁!你们两人提供的帮助帮助我继续前进!=)