【问题标题】:File is found when using NetBeans, not found using the terminal使用 NetBeans 时找到文件,使用终端找不到
【发布时间】:2016-09-14 15:51:58
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的用户目录已更改,这并不奇怪。不要为此使用文件,使用资源。谷歌这个。
  • 我试过了,但还是不行
  • 您的编辑没有意义。您的问题涉及阅读文本文件的问题。请修正您的问题,以便我们了解发生了什么(或删除它)。

标签: java netbeans filereader filenotfoundexception


【解决方案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 的情况下运行程序时,弄清楚程序是如何访问目录的。

【讨论】:

  • 好的,我试过了,不是同一个目录。终端给我: currentDir = /Users/Henrike/NetBeansProjects/DisCaptive/src 和 netbeans 给我: currentDir = /Users/Henrike/NetBeansProjects/DisCaptive
  • 谢谢你给我看这个。它帮助我找到了图片。
  • 很高兴有帮助...我应该说从命令提示符运行会给你一个答案,这取决于你在哪里运行 Java 命令来启动你的程序。
  • 您应该避免使用绝对路径,除非您希望您的程序仅在一台计算机上运行。更好地理解和解决问题。
猜你喜欢
  • 1970-01-01
  • 2015-08-14
  • 2018-10-11
  • 2011-11-30
  • 2019-03-15
  • 2012-12-22
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多