我的 java 程序的 JAR 文件中有一个 .csv 数据库文件。在打包之前,该程序在 NetBeans IDE 中运行良好,但一旦打包,它就拒绝相信该文件在其中,即使我让它打印出它正在查找的路径并解压缩 JAR 以确保我告诉了它寻找正确的地方。我如何让 Java 看到这一点?
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 + ").");
}
最佳答案
不要为资源创建File
对象,因为可能没有File
。 File
仅代表文件系统上的“真实”文件。就操作系统而言,.jar 文件中的"file"只是一些字节。
您需要使用getResourceAsStream()
获取 InputStream
并从中读取。
关于Java 无法识别 JAR 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217175/