Écriture à l'intérieur du package/dossier d'application Mac avec Java


D'accord, j'ai réfléchi avant de poser cette question car au début, cela ressemble à la question séculaire qui se résume à "est-il possible d'écrire à l'intérieur d'une archive". Je suis nouveau sur Mac OS X mais j'ai lu que les applications ne sont qu'un dossier avec l'extension .app et une structure de fichier spécifique. Donc, je voudrais savoir si il est possible d'écrire à l'intérieur de ce dossier, et si oui, comment.

La raison pour laquelle je demande est parce que dans mon programme Java, sous Windows, il lit certains fichiers qui sont dans le répertoire programs (le principe des Program Files) mais sur OSX les applications ne semblent pas créer de fichiers (qui sont apparents) - j'ai donc deviné qu'elles doivent les stocker dans le dossier .app! Si je me trompais cependant, j'aimerais savoir où les applications stockent normalement les fichiers qu'elles créent.

Merci d'avance

EDIT Toute la raison pour laquelle je pose cette question est parce que je crains les commentaires négatifs si mon application laisse des fichiers derrière, donc j'ai vraiment besoin opinions informatives. En bref, mon application a besoin d'un fichier de configuration, mais elle permet également aux utilisateurs de créer leurs propres "bases de données". Je pense maintenant que je vais les stocker dans le dossier de documents de l'utilisateur, mais je ne sais pas si je dois supprimer ces fichiers lorsque l'application est supprimée ou simplement les laisser. Évidemment, les supprimer m'obligerait à créer un package - ce qui serait juste une étape supplémentaire pour l'utilisateur, alors qu'en pensez-vous?... Oh oui, et les applications génèrent un fichier de licence sur l'utilisateur d'entrer une série valide clé sur Windows les informations sont stockées dans le registre, mais sur Mac je ne sais pas où mettre le fichier contenant ces informations! Toute aide serait très appréciée.

Author: Andy, 2012-04-12

2 answers

Vous ne devriez pas écrire dans le bundle d'applications. Quelques raisons sans ordre particulier:

  • L'utilisateur peut ne pas avoir les autorisations d'écrire dessus. En fait, l'ensemble d'applications peut être sur un support en lecture seule.

  • L'ensemble d'applications n'est pas spécifique à l'utilisateur. Il est susceptible d'être dans un emplacement partagé et utilisé par tous les utilisateurs sur le système.

  • Les applications doivent être codesigned et la modification de leurs internes est susceptible d'invalider la signature.

Le l'emplacement approprié pour placer les données utilisateur se trouve soit dans le dossier Documents de l'utilisateur, dans un sous-répertoire spécifique au produit de ~/Library/Application Support (ou, s'il doit être à l'échelle du système, /Library/Application Support), soit dans un emplacement choisi par l'utilisateur.

Je ne serais pas trop préoccupé par le fait de laisser des fichiers derrière si l'utilisateur supprime l'application. C'est assez commun, et même souhaitable. Par exemple, si je supprime l'ancienne version avant d'installer la nouvelle version, je veux la nouvelle version afin de trouver le fichiers existants laissés à partir de l'ancienne version. Si vous suivez les conventions typiques, l'utilisateur saura comment nettoyer (ou quelque chose comme AppZapper pourra le faire pour eux).

 3
Author: Ken Thomases, 2012-04-15 10:08:54

Je cherche moi-même la réponse à cette question mais je pense que je peux vous aider avec votre problème. J'ai porté une application java" windows " par moi-même. Je ne suis pas un vrai expert Mac mais mes recherches sur ce sujet m'ont donné les réponses suivantes:

Je comprends le *.dossier app comme package d'installation de votre programme. Les éléments internes de ce dossier ne sont pas affichés à l'utilisateur. Pour lui, il est tout simplement l'application. Une recherche rapide sur Google m'a donné ce qui suit conseils:

Http://developer.apple.com/library/mac/#qa/qa1170/_index.html

Où mettre les données de l'application et les fichiers temporaires sur mac

Peut-être que cela aide

 2
Author: Patrick Schmid, 2017-05-23 10:34:48