为什么我的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文件中使用的读取。