10
votes

Comment un fichier JAR peut lire un fichier de propriétés externe

Nous avons une composante de mise en pool de connexion (fichier JAR) pour l'une de nos applications. Dès maintenant, les détails de la connexion de l'application sont fournis avec le fichier JAR (dans .properties fichier).

pouvons-nous le rendre plus générique? Pouvons-nous avoir le client indiquer les détails du fichier de propriétés (le chemin du chemin et le nom du fichier) et utiliser le bocal pour obtenir la connexion?

a-t-il un sens d'avoir quelque chose comme celui-ci dans le code client: < / p> xxx

avec cela, le client spécifiera (en quelque sorte ???) les détails du fichier de propriétés qui ont les URL à connecter, délai d'attente, etc.


0 commentaires

7 Réponses :


9
votes

http: //www.javaworld. com / javaworld / javaqa / 2003-08 / 01-qa-0808-iTHTML

Plusieurs approches sont disponibles, l'article ci-dessus fournit plus de détails xxx < / p>


0 commentaires

9
votes

Il suffit de charger les propriétés du fichier, de quelque chose comme xxx

Notez comment le codage est explicitement spécifié comme UTF-8 ci-dessus. Il pourrait également être laissé de côté si vous acceptez l'encodage ISO8859-1 par défaut, mais méfiez-vous avec des caractères spéciaux.


0 commentaires

20
votes

La manière la plus simple, utilisez le commutateur -D pour définir une propriété système sur une ligne de commande Java. Cette propriété système peut contenir un chemin d'accès à votre fichier de propriétés.

par exemple xxx

puis, dans votre code, vous pouvez le faire (la gestion des exceptions n'est pas affichée pour la brièveté): < / p> xxx


0 commentaires

3
votes

La manière la plus simple est ci-dessous. Il chargera l'application.Proporties du dossier CFG en dehors du fichier JAR.

Structure de répertoire xxx

code: xxx / p>


0 commentaires

-1
votes
public static String getPropertiesValue(String propValue) {
        Properties props = new Properties();
        fileType = PCLLoaderLQIOrder.class.getClassLoader().getResourceAsStream(propFileName);
        if (fileType != null) {
            try {
                props.load(fileType);
            } catch (IOException e) {
                logger.error(e);
            }
        } else {
            try {
                throw new FileNotFoundException("Property file" + propFileName + " not found in the class path");
            } catch (FileNotFoundException e) {
                logger.error(e);
            }
        }
        String propertiesValue = props.getProperty(propValue);
        return propertiesValue;
    }
above methods works for me, just store your property file into directory from where to run your jar and provide that name in place of propFileName, when you want any value from property just call getPropertyValue("name").

1 commentaires

C'est illisible.



4
votes

C'est ma solution. Premièrement rechercher app.properties code> dans le dossier de démarrage, si cela n'existe pas d'essayer de charger à partir de votre package JAR:

File external = new File("app.properties");
if (external.exists())
    properties.load(new FileInputStream(external));
else 
    properties.load(Main.class.getClassLoader().getResourceAsStream("app.properties"));


1 commentaires

C'est simple et assez agréable qui est utile à mon projet de compagnie.



0
votes

in NetBeans, je devais charger l'application.Properties à partir du dossier CONF / CODE> en dehors du fichier JAR.

J'ai donc écrit: p>

FIS = new FileInputStream( "../conf/"+FileName);


0 commentaires