我的src下有frmae/FrmMain.java,data/words.txt,在FrmMain里有个建File的地方,路径用的是"../data/words.txt",一运行总报错文件找不到,无论是在netbeans里还是在cmd里都是这样,奇怪。

解决方案 »

  1.   

    创建File路径是不是应该用"../frmae/data/words.txt"。不是很确定。
      

  2.   

    System.getProperty(“user.dir”)用来获得当前路径
      

  3.   

    在FrmMain.java中,先用this.getClass.getResource()得到当前路径, 然后在处理.
      

  4.   

    用这个方法打印出来之后发现是classes目录,到底有没有相对路径的办法????
      

  5.   

    我用的是eclipse,File的相对路径是,工作区下的项目名
    假如我在"e:"的工作区是Java File Prigarmme这个工作区,我有个项目名coreJava
    corejava里就自动生成个src,相对路径就是coreJava下,和src是同一级的。
    ".."是代表上一级,你上一级只能找到src不能找到data
    你把:"../data/words.txt",改成-->"src\\data\\words.txt"试试
      

  6.   

    开始没看懂你的意思,后来明白了,你是说用相对路径创建个文件,向里面写东西,然后看看这个文件生成 在哪吧,生成在classes里面了。用cmd运行程序的话,是相对于classes目录的,而在ide里则是相对于工程根目录。我开始就是用data/words.txt这样的写法,莫名其妙地说找不到文件,后来又莫名其妙地好用了,
      

  7.   

    nputStream resourceAsStream = this.getClass().getResourceAsStream("/data/words.txt");
      

  8.   

    或者new File("src/data/words.txt")