【问题标题】:Resolving File paths - 'File not found' error in Eclipse解决文件路径 - Eclipse 中的“找不到文件”错误
【发布时间】:2013-09-26 16:35:02
【问题描述】:

我的当前目录有文件 registers.xml 和 MySaxparser.java。但是当我使用 new File("register.xml"); 时,我仍然收到 File not found 错误;

我的密码是:C:\Users\nb\workspaceAndroid\MySaxParser

我使用的是 Java 1.7,windows 上的 Eclipse 平台

  public static void main(String[] args) {
        File file1 = new File("register.xml");
          if(file1.exists()){
              System.out.println("File existed");
          }else{
              System.out.println("File not found!");
          }
   System.out.println("Working Directory = " +  System.getProperty("user.dir"));

输出:

File not found!
Working Directory = C:\Users\nb\workspaceAndroid\MySaxParser

我尝试了下面的行,但也没有用。

File file1 = new File("C:\\Users\\nb\\workspaceAndroid\\MySaxParser\\register.xml");

【问题讨论】:

    标签: java eclipse filepath workspace


    【解决方案1】:

    使用 getClass().getResource() 读取类路径中的文件:

    URL url = getClass().getResource("register.xml");
    

    完整代码:

    URL url = getClass().getResource("register.xml");
    File file = new File(url.toURI());
    

    【讨论】:

    • 这个 anwser 对我不起作用,因为您不能从静态类调用 getClass。如果您正在处理静态类,例如public static main,使用 [Name_of_your_Class].class.getResource(...) 代替:例如MySaxParser.class.getResource("register.xml") 有关详细信息,请参阅答案:stackoverflow.com/a/17397548/1806436
    【解决方案2】:

    Eclipse Java项目中当前工作目录与保存文件的目录不同

    目录 C:\Users\nb\workspaceAndroid\MySaxParser\src

    工作目录:C:\Users\nb\workspaceAndroid\MySaxParser

    确保文件路径是相对于工作目录的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多