2010-02-24 6 views
5

Après quelques recherches sur Google et là, je n'ai toujours pas trouvé de réponse à ce qui suit:Manifest vs format de fichier Propriétés

Y at-il une raison qui se manifeste JAR ne pas seulement utiliser le format de propriétés?

Je suppose que c'est historique, mais il serait bon de savoir exactement comment cela s'est passé – était la décision de ne pas utiliser le format des propriétés explicitement fait ou le format des propriétés développé après le format manifeste? Pour autant que je puisse voir il n'y aurait aucune raison technique, bien que le format manifeste semble un peu plus lisible.

Répondre

2

Bonne question. Je ne peux que spéculer. Un détail important sur l'implémentation Properties (mais pas nécessairement la spécification du format de fichier) est qu'il ne prend pas en charge plusieurs valeurs avec la même clé (dont vous avez besoin pour les valeurs par entrée dans le manifeste) et pour conserver et représenter l'ordre de ses entrées.

+0

Ce sont des choses importantes pour les manifestes. Alors que cela fournit une raison pour tout type d'écart par rapport au format des propriétés, la question reste de savoir pourquoi le format de base n'a pas été conservé (en fait, n'aurait-il pas été préférable de simplement faire l'implémentation 'Properties' plus général?). –

+0

Comme je suis nouveau à StackOverflow je ne suis pas sûr de ce que la «procédure standard» est d'accepter des réponses. Je vais juste attendre un ou deux jours et s'il n'y a plus de réponses, je vais accepter celle-ci - c'est le meilleur jusqu'à présent et fait ressortir une différence intéressante entre les deux formats. –

0

C'est probablement une chose historique. Le format manifeste est plus restrictif sur certaines choses comme la longueur de ligne maximale. Il a aussi un tas de règles sur la signature de pot, mais je pense que ce truc a été ajouté plus tard.

+0

Je viens de vérifier ces règles de signature et elles se réduisent essentiellement au commentaire de @ Joachim, c'est-à-dire en autorisant plusieurs valeurs avec la même clé et en maintenant la commande intacte. Quant à la longueur de ligne maximale, bon point! C'est 70 caractères (et selon Wikipédia il y a quelques problèmes avec l'interprétation des règles d'emballage). –

0

Vous devez également prendre en compte le problème du bootstrap. Le manifeste du premier fichier JAR chargé peut ne pas être lu par le code Java du tout ...

+0

Non argument - pour plus de cohérence, ils auraient pu construire leur bootstrap en utilisant la même spécification pour la persistance. – Newtopian

+0

Bien sûr, mais il est clair que java.util.Properties n'est pas nécessairement disponible et libre d'utilisation à tout moment. – EJP