【发布时间】:2013-05-13 23:55:52
【问题描述】:
我写了一个小应用程序。我已将数据库特定信息放在属性文件中。
db.url=jdbc:mysql://localhost:3306/librarydb
db.user=root
db.passwd=pas$w0rd
当我构建应用程序以获取可执行 jar 文件时,属性文件会包含在其中。将这些信息放在属性文件中的全部目的是允许用户更改这些信息,但这使得它变得不可能。
我怎样才能包含一个没有jar文件的属性文件?有点像在 .NET 应用程序中使用 AppSettings 文件。
我对 Java 很陌生,因此如果您能将其分解为一组步骤,我将不胜感激。
谢谢。
编辑:
这就是我从程序的属性文件中获取值的方式。
public class DatabaseHandler {
public static Connection connectToDb() {
Connection con = null;
Properties props = new Properties();
InputStream in = null;
try {
in = DatabaseHandler.class.getResourceAsStream("database.properties");
props.load(in);
in.close();
String url = props.getProperty("db.url");
String user = props.getProperty("db.user");
String password = props.getProperty("db.passwd");
con = DriverManager.getConnection(url, user, password);
} catch (Exception ex) {
Logger.getLogger(DatabaseHandler.class.getName()).log(Level.SEVERE, null, ex);
}
return con;
}
}
【问题讨论】:
-
我不清楚你所说的“我怎样才能包含一个没有 jar 文件的属性文件” - 只是不要将属性文件放在 jar 文件中......
-
嗯...我能给出的最接近的例子是 .NET 中的
App.config文件。创建可执行文件时,文件与它捆绑在一起,对吗?不在里面它。 -
当然。所以现在您已经提供了代码,我们可以看到您需要做什么 - 只需使用
FileInputStream而不是getResourceAsStream。 -
嗨,Isuru,我正在寻找相同的信息。您能否分享一些关于我应该将
properties文件放在哪里的信息?我应该使用FileInputStream还是getResourceAsStream? -
@Shruti 嗨。不幸的是,我在两年前从事大学项目时问了这个问题。我现在什么都不记得了。而且我不再是 Java 开发人员了。如果您可以向在下面发布答案的人提问,那就更好了。或者完全发布一个单独的问题。对不起。
标签: java database executable-jar properties-file