【问题标题】:Eclipse Java Deployment: how to add auto-generate file to Jar fileEclipse Java 部署:如何将自动生成文件添加到 Jar 文件中
【发布时间】:2012-04-25 15:04:04
【问题描述】:

我已经完成了我的项目,现在我已经将它部署到 jar 文件中。但是我遇到了一个问题:

我的程序在 Eclipse 中自动生成一个文件(例如:data.sav),它出现在最前面的项目文件夹中。当我部署时,这个文件不包含 jar 文件。所以,它从没有数据开始。

在我运行并做某事之后,它再次制作了data.sav。但是,我在那个 jar 文件中没有看到这个文件。我这样说是因为我希望将旧的 data.sav 覆盖为新的 data.sav。

所以,请教我,如何将“data.sav”包含到 jar 文件中。在 Eclipse 中部署时我没有看到此选项。

这是我要写文件的代码:

ObjectOutputStream writer = new ObjectOutputStream(
    new FileOutputStream("data.sav"));

为了更清楚我为什么这样做。 例如,一个游戏的列表包含最多 10 人的高分。当你第一次玩的时候,还没有人玩,所以我必须在这个高分榜上写一些人来“作弊”,所以我的程序有一些以前玩过的“傻瓜玩家”

【问题讨论】:

  • *“我的程序自动生成一个文件(例如:data.sav)”我不明白。您的程序显然在应用程序的“运行时”执行此操作。已经在一个罐子里了。那时它无法向 Jar 写入任何内容。顺便说一句 - 在帖子中留下诸如“谢谢:)”之类的噪音。
  • 你想改变jar文件的内容?!
  • 我又编辑了。请教我
  • “请教我” 1. 了解除非您在评论前添加@PersonName,否则人们不会了解cmets。 ;)

标签: java eclipse deployment executable-jar


【解决方案1】:

罐子是只读的。详情请见How can a Java program use files inside the .jar for read and write?

也许使用Preferences API 可以更好地存储高分。它会自动处理“将信息放在哪里”。

否则,我将拥有该应用程序。将虚拟分数和任何后续真实分数写入user.home 子目录中的文件。那是一个应该允许读取/写入标准 Java 应用程序的地方。

【讨论】:

  • 比如我有一个文件夹/src/。你能告诉我如何写到这个文件夹,拜托。我只能写到绝对路径。当我使用时:File file = new File(Model.class.getResource("/src/data.sav").toString()); 发生错误
  • 您没有阅读或没有理解我的信息和链接的答案。我不确定如何继续。
猜你喜欢
  • 2021-08-29
  • 2011-09-11
  • 1970-01-01
  • 2019-06-15
  • 2014-05-22
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多