gpt4 book ai didi

java - 当项目转换为可执行 jar 时,序列化文件不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:49 25 4
gpt4 key购买 nike

我使用 eclipse 中的导出到 jar 选项将我的 java 项目制作成一个可执行的 jar。 jar 按预期运行,只是它不使用任何序列化文件。我可以从 GUI 中清楚地看到这一点。出现此问题的原因是什么?我该如何解决?

我看到了这个相关问题 - Why does my JAR file not create a serialization?

但它并没有告诉我如何解决这个问题。看起来您无法将文件夹打包到 jar 中。为什么 ?因为代码可能会无意/有意地继续向该文件夹中添加数据并使整个 jar 占用硬盘?

如何创建某种结构来打包可执行 jar 及其序列化文件夹?

最佳答案

回答这个问题:

How do I create some kind of structure in which I pack my executable jar and its serialization folder ?

一种常见的方法是有一个明确定义的位置来存储序列化文件、设置等,这与程序从何处执行无关。通常它是用户的主目录,或者在 Windows 的情况下是应用程序数据。我使用这段代码来存储我的应用程序设置:

    String home = System.getenv("APPDATA");
if (StringUtils.isEmpty(home)) {
home = System.getProperty("user.home");
}
CONFIG_HOME = new File(home, ".myProgram").getAbsoluteFile();
CONFIG_HOME.mkdirs();

因此在 Windows 上它将使用 AppData 而在 *nix 系统上它将使用用户的家。 myProgram 前面的点是为了让它隐藏在*nix 平台上,这是一种常见的做法。

编辑对于您在评论中提出的问题:

在我的 Linux 机器上没有 APPDATA env 变量,所以这段代码将创建一个目录 /home/myUser/.myProgram。在 Windows 上,它类似于 c:/Users/myUser/AppData/Local/.myProgram。在 MacOSX 上,不知道。

关于java - 当项目转换为可执行 jar 时,序列化文件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15808360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com