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 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? P> a-t-il un sens d'avoir quelque chose comme celui-ci dans le code client: < / p> 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. p> p> p> .properties code> fichier).
7 Réponses :
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 p>
Il suffit de charger les propriétés du fichier, de quelque chose comme 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. P> P>
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 p> puis, dans votre code, vous pouvez le faire (la gestion des exceptions n'est pas affichée pour la brièveté): < / p>
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 p> code: p>
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").
C'est illisible.
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"));
C'est simple et assez agréable qui est utile à mon projet de compagnie.
in NetBeans, je devais charger l'application.Properties à partir du dossier J'ai donc écrit: p> CONF / CODE> en dehors du fichier JAR.
FIS = new FileInputStream( "../conf/"+FileName);