2009-02-17 33 views
6

Ứng dụng RCP Eclipse của tôi yêu cầu tệp cấu hình chứa một số thông tin để kết nối với cơ sở dữ liệu từ xa. Vị trí tốt nhất để lưu trữ tệp cấu hình này ở đâu?Eclipse RCP: Sử dụng thư mục cấu hình

Tôi có thể sử dụng thư mục cấu hình mặc định (nơi 'config.ini' thường được lưu trữ) cho mục đích này không? Nếu vậy, làm cách nào tôi có thể nhận được một cá thể Tệp cho vị trí này theo chương trình? Tôi cũng lưu ý rằng thư mục này không tồn tại trong IDE Eclipse của tôi.

Cảm ơn.

Trả lời

0

Thông thường, tôi muốn ẩn các tệp cấu hình trong thư mục "bin" hoặc ở đâu đó không có trong thư mục gốc. Bạn có lẽ nên giữ nó trong một thư mục con của dự án của bạn để bạn không lộn xộn lên một số vị trí ngẫu nhiên trên hệ thống. Nếu bạn cần phải nhận được một xử lý để File, bạn chỉ có thể làm:

File configFile = new File("./bin/remoteDbConfig.ini"); 

Sau đó, nếu một file ini thật sự của nó, bạn có thể sử dụng Properties.load() để tải và sử dụng các giá trị từ tập tin ini.

Bạn cũng có thể sử dụng API tùy chọn để lưu trữ dữ liệu bạn cần cho kết nối từ xa.

+0

Người dùng có thể thay đổi cài đặt hoặc chúng được mã hóa tương đối cứng không? –

+0

Bạn có thể thay đổi cài đặt theo lập trình, nhưng bạn phải cung cấp cho người dùng một cách để thực hiện việc này. (Tùy chọn tùy chọn GUI như eclipse, cmd line arg, v.v.) Properties.setProperty (khóa, val), theo sau là Properties.store (luồng, tiêu đề) –

1

Hãy nhìn vào các plugin nguồn lực - có thể cung cấp cho bạn những gì bạn đang tìm kiếm:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm

+0

Đây là một tập hợp các plugin chính mà RCP có thể chưa có. Điều này cung cấp việc triển khai cửa hàng tùy chọn, chỉ để cho phép các tùy chọn được lưu trữ trong một vùng làm việc. Liên kết của bạn cũng không đi tới bất kỳ trung tâm nào có sở thích. :( – jamesh

5

Bạn có, như mọi khi, một số tùy chọn, tùy thuộc vào yêu cầu của bạn.

  • sử dụng Runtime Preferences để lưu trữ trong một sở thíchStore với một PreferenceInitializer phù hợp. Khá một API lớn và rộng lớn với khá nhiều suy nghĩ đi vào nó. Tùy chọn này không được hiển thị cho người dùng hoặc quản trị viên theo mặc định, vì vậy bạn cần phải thực hiện một số công việc để hiển thị trang tùy chọn hoặc ghi vào tệp thuộc tính.

Đối kém phát triển làm việc ít hơn /, đặc biệt là nếu bạn không có quyền truy cập vào các ưu đãi nhật thực (ví dụ máy chủ bên OSGi):

  • bộ như một thuộc tính hệ thống, trong RCP.ini. Không thể thay đổi người dùng sau khi khởi chạy, yêu cầu quyền truy cập vào tệp RCP.ini (eclipse.ini) có thể có thể đặc biệt nếu bạn không đóng góp IDE.
  • đặt làm thuộc tính hệ thống, làm đối số trong lối tắt. Phụ thuộc vào người dùng bằng phím tắt. Phím tắt chuyên biệt cần được tạo tại thời điểm cài đặt.

Nếu khả năng tiếp cận từ hệ thống tập tin là thực sự quan trọng, sau đó tôi sẽ xem xét bằng một trong những phương pháp trên để thiết lập một thư mục etc, và để cho các nhóm của bạn tạo ra các file thuộc tính mặc định trong thư mục etc nếu họ không tồn tại vào lần sử dụng đầu tiên. Về cơ bản, điều này chủ yếu là tung cửa hàng tùy chọn của riêng bạn, vì vậy nếu bạn có gói tùy chọn truy cập, bạn có thể làm tốt hơn việc đó. Điều này khá cũ User Settings FAQ cũng có thể hữu ích.

Tôi nhớ lại một cuộc phỏng vấn Erich Gamma (như trong Gang of Four, và JDT kỹ thuật) trong đó ông nói rằng có khoảng bảy cơ chế ưu tiên khác nhau, và ông không bao giờ biết cái nào để sử dụng.

0

Để có được vị trí tập tin của thư mục cấu hình, chạy:

mới org.eclipse.core.runtime.preferences.ConfigurationScope() getLocation() toFile();..

2

Như đã được chỉ ra, API sở thích là điều cần xem xét. Ngoài ra còn có API tùy chọn bảo mật phù hợp để lưu trữ tên người dùng và mật khẩu được mã hóa trên đĩa.

Một tùy chọn khác là sử dụng dịch vụ OSGi 'org.eclipse.osgi.service.datalocation.Location' OSGi. Điều này cung cấp quyền truy cập vào các vị trí khác nhau có sẵn.

Tùy chọn thứ ba là xác định thuộc tính hệ thống trong 'config.ini' trỏ tới tệp bằng thông tin kết nối của bạn bằng cách sử dụng trình giữ chỗ: '[email protected]/mysettings.ini'. '@ config.dir' là một trình giữ chỗ được thay thế bằng đường dẫn thực tế đến thư mục cấu hình.

Các vấn đề liên quan