【发布时间】:2016-08-21 04:37:38
【问题描述】:
我的 Java 应用程序在名为“assets”的顶级文件夹中有一个名为“classes”的本地文件(简单的List<String>)。当我从 Eclipse 运行下面的代码时,文件被读取没有问题。
try { // read in classes from local file
ObjectInputStream inputStream =
new ObjectInputStream(new FileInputStream("assets\\classes".replace("\\", "/")));
listOfClasses = (List<String>) inputStream.readObject();
System.out.println("*** Reading local copy of classes file ***");
inputStream.close();
} catch (FileNotFoundException e) { e.printStackTrace();
} catch (ClassNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); }
当我将我的应用程序导出为 JAR 并在另一台计算机上运行时,我在第 3 行得到一个 java.io.FileNotFoundException。我将“assets”文件夹添加到构建路径中,所以它应该在 JAR 中。
有人知道这里有什么问题吗?
【问题讨论】:
-
将程序导出为 JRE 是什么意思? JRE 通常代表您用来运行 java 程序的程序,例如。 G。
java命令是 JRE 的一部分。我也看不出它与FileInputStream有什么关系,FileInputStream只是一个普通的旧文件阅读器,与任何类型的文件打开功能相同。 -
-
这是一个 JAR,而不是 JRE。对于那个很抱歉。所以是的,我去导出 -> 可运行的 JAR 文件 -> 等等。
ObjectInputStream inputStream = new ObjectInputStream(getClass().getResourceAsStream("/assets/classes"));但是当我在 Eclipse 中玩耍时会给出 NullPointException。
标签: java eclipse file fileinputstream objectinputstream