开发者

Java won't recognize file in JAR

I have a .csv database file inside my java program's JAR file. The program works fine in NetBeans IDE before I package it, but once I do, it refuses to believe the file is in it, even though I had it print out the path where it was looking and unzipped the JAR to be sure I told it to look in the right place. How do I make Java see this?

  try
  {
    String path = Main.class.getResource("/items.csv").getPath();
    db = new java.io.File(path);
    loadValues(db);
  }
  catch (java.io.FileNotFoundException ex1)
  {
    System.out.println("Could not find database file (" 开发者_运维问答+ ui.db + ").");
  }


Don't create a File object for the resource, as there may be no File. A File represents only "real" files on the filesystem. As far as the OS is concerned a "file" inside a .jar file is just some bytes.

You'll need to use getResourceAsStream() to get an InputStream and read from that.


Once you pack it in jar file it is no longer a direct file..

Try to read it with InputStream

InputStream input = getClass().getRessourceAsStream("/classpath/to/my/items.csv");

Also See

  • getResourceAsStream()


Use Class.getResourceAsStream to load the files inside the jar:

    InputStream is = Main.class.getResourceAsStream("/items.csv");
    loadValues(is);

Change your loadValues method to work on an InputStream rather than a File.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜