Как сохранить рекорд в файле JAR - PullRequest
2 голосов
/ 23 сентября 2010

Я разрабатываю небольшую игру на Java и отправляю ее в виде одного файла Jar. Я хочу где-то хранить лучшие результаты / лучшие времена для этой игры. Вместо того, чтобы хранить его в отдельном файле, я хотел бы сохранить его в самом приложении (внутри Jar), ​​чтобы оно не потерялось. Это вообще возможно ? Если да, то как это сделать программно.

Ответы [ 4 ]

7 голосов
/ 23 сентября 2010

Java не дает вам инструментов для изменения JAR-файлов, которые в данный момент работают. Если вы действительно хотите это сделать, вам нужно угадать местоположение JAR-файла самостоятельно (который может находиться в файловой системе только для чтения) и изменить его так же, как вы изменили бы любой архивный файл.

Итог: это очень плохая идея, не делайте этого! См. этот вопрос для более разумного решения.

2 голосов
/ 23 сентября 2010

Нет ничего невозможного, но сохранение его в файле jar сделает его очень сложным.Вы также можете столкнуться с нежелательными побочными эффектами, такими как «Permission Denied», когда jar принадлежит другому пользователю.Вирусные сканеры могут нервничать, когда видят, что jar-файлы меняются без причины и т. Д.

Я бы обратился к Preferences API для хранения такого рода информации.

1 голос
/ 23 сентября 2010

Я думаю, что пытаться хранить что-либо в файле jar - плохая идея. Другой вариант - предложить веб-сервис людям, которые играют в вашу игру. Игра может подключиться через веб-сервис к вашему серверу, а затем хранить все централизованно. Не уверен, что это именно то, что вы хотите, но это просто идея. Это также позволило бы людям соревноваться друг с другом.

0 голосов
/ 23 сентября 2010

Java JAR-файл является ZIP-архивом, поэтому вы можете получить к нему доступ с помощью стандартных ZIP-инструментов и просто извлечь один файл hisghscores.txt, изменить его и затем упаковать обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...