2016-09-14 60 views
0

所以我必须使用终端运行程序。但是当我这样做时,它告诉我我找不到要使用的文件。当我使用NetBeans运行我的程序时,没有任何问题。 这个id我的代码使用NetBeans时发现文件,未找到使用终端

File file = new File("src/level/Level2.txt"); 
    FileReader fileReader = new FileReader(file); 
    BufferedReader reader = new BufferedReader(fileReader); 

当它的工作原理,程序应该打开一个窗口,从文件级别。 当为文件名尝试“level/Level2.txt”时,会打开一个空白窗口。 希望有人能帮助我。

编辑 我发现有什么问题。我的程序找不到要显示的图像。

+1

你的用户目录已经改变了,这并不奇怪。不要为此使用文件,请使用资源。 Google这个。 –

+0

我试过这样做,但它仍然不起作用 – Hxebu1

+0

您的编辑没有意义。您的问题涉及阅读文本文件的问题。请修正您的问题,以便我们可以了解正在发生的事情(或删除它)。 –

回答

-1

为了让事情不那么神秘,您可以尝试使用绝对路径而不是相对路径。

String currentDir = Paths.get(".").toAbsolutePath().normalize().toString(); 
System.out.println("currentDir = " + currentDir); 

例如,我的系统这个输出这个目录名字:

currentDir = /Users/harry/Projects/proj3 

的绝对路径,你在命令行中看到的将依赖新生你在哪里开始的Java从控制台运行目录(假设你的Java应用程序不会尝试改变当前的工作目录。)

建议从这里借:

Getting the Current Working Directory in Java

我建议这样做以解决您的特定问题,并且而不是作为在Java应用程序中使用路径的一般建议。相对路径更好......当你在没有IDE的情况下运行时,找出程序访问目录的方式非常好。

+0

好吧,我试过了,它不是相同的目录。终端给我:currentDir =/Users/Henrike/NetBeansProjects/DisCaptive/src和netbeans给我︰currentDir =/Users/Henrike/NetBeansProjects/DisCaptive – Hxebu1

+0

谢谢你给我看这个。它帮助我获得要找到的图像。 – Hxebu1

+0

很高兴帮助...我应该说从命令提示符运行会给你一个答案,这取决于你在哪里运行Java命令来启动你的程序。 – akubot

相关问题