为什么我的JAR文件不能创建序列化?
问题描述:
我从一个Java项目创建了一个jar文件。我现在甚至可以运行它,但是它不会保存在我从JAR文件外部的正常二进制代码运行程序时正确存储的序列化文件。为什么我的JAR文件不能创建序列化?
当你有一个jar文件时,你不能创建新文件吗?
这是我写的文件:
FileOutputStream fileOut = new FileOutputStream("data/vocabulary.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(this);
out.close();
fileOut.close();
我的JAR文件看起来像这样:
META-INF
MANIFEST.MF
name
stefankoch
…
其中名称/ stefankoch/...是我的项目的命名空间。
我试着在jar文件(root)中创建一个data
目录,但它也没有工作。在jar文件所在的目录中还有一个data
目录,但那个目录也不被使用。
如何让jar文件创建文件?
答
基本上,您不应该将用户输入的信息添加到JAR文件中,它们属于用户的主目录。
这可以用
System.getProperty("user.home")
而且用户主目录中的文件,也可以从一个JAR文件中使用的读取。