Tôi đã viết một ứng dụng nhỏ. Tôi đã đặt thông tin cơ sở dữ liệu cụ thể trong một tệp thuộc tính.Bao gồm một tập tin tài sản với một tập tin Jar
db.url=jdbc:mysql://localhost:3306/librarydb
db.user=root
db.passwd=pas$w0rd
Khi tôi tạo ứng dụng để lấy tệp jar thực thi, tệp thuộc tính sẽ được đưa vào bên trong. Toàn bộ mục đích của việc đưa những thông tin đó vào một tệp thuộc tính là cho phép người dùng thay đổi chúng nhưng điều này làm cho nó không thể.
Làm cách nào để bao gồm tệp thuộc tính có tệp jar không có trong đó? Cũng giống như bạn làm với tập tin AppSettings trong các ứng dụng .NET.
Tôi rất mới đối với Java nên tôi đánh giá cao nếu bạn có thể chia nhỏ thành một tập hợp các bước.
Cảm ơn bạn.
EDIT:
Đây là cách tôi nhận được các giá trị từ tập các thuộc tính trong chương trình của tôi.
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;
}
}
Nó không rõ ràng với tôi những gì bạn có ý nghĩa bởi "Làm thế nào tôi có thể bao gồm một thuộc tính tập tin với file jar không ở trong đó" - chỉ cần không đặt tệp thuộc tính vào tệp jar ... –
Um ... ví dụ gần nhất tôi có thể đưa ra là tệp 'App.config' trong .NET. Khi tệp thực thi được tạo, tệp được đóng gói với nó, phải không? Không _inside_ nó. – Isuru
Chắc chắn. Vì vậy, bây giờ bạn đã cung cấp mã, chúng ta có thể thấy những gì bạn cần làm - chỉ cần sử dụng 'FileInputStream' thay vì' getResourceAsStream'. –