簡體   English   中英

使用數據庫為 Java 程序創建安裝程序

[英]Creating an installer for Java program with database

最近我申請了使用 Swing、AWT 和 JDBC 來管理一些數據庫。 我使用 PostgreSQL 作為后端,使用 JDBC 驅動程序連接到數據庫。 我想要做的是創建一個安裝程序/安裝程序,以便可以在任何電腦上安裝和使用該應用程序。 我的問題是我不知道如何整合數據庫?

任何幫助,將不勝感激。

編寫一個同時管理數據庫安裝的安裝程序本身就是一個項目。 最大的問題是您需要從頭開始安裝 PostgreSQL 還是告訴用戶先自己安裝?

我試圖做類似的事情,我最終做的是使用 NSIS 構建一個安裝程序,其中包括 Postgres 和安裝包中的 JRE 以及我的程序。 安裝程序將所有內容復制到用戶的安裝位置並創建所有必需的配置文件。

我遇到的最大問題是我有許多配置選項要呈現給用戶,這些選項會在 NSIS 中進行大量編程。 因此,我修改了我已經為構建項目而編寫的 ANT 構建腳本。 NSIS 然后將 JRE 復制到一個臨時位置並啟動我編寫的Java安裝程序 GUI,它收集所有配置信息並在后台啟動 ANT。

如果你沒有太多要配置的東西,或者你需要配置的東西沒有很多選項,那么你可以直接在 NSIS 中做所有事情。 但是,請記住,您也需要具有安全意識。 你如何創建一個新用戶來運行 Postgres? 您安裝的目錄權限如何? 誰可以啟動和停止數據庫,誰可以讀取數據庫文件等?

從大多數具有數據庫組件的商業應用程序中吸取教訓。 通常他們要求預先安裝/配置數據庫並為其支持的供應商提供數據庫腳本。 這有很多原因。 其中大部分與組織喜歡管理自己的數據庫有關。 這通常是因為他們在安全、維護等方面有公司限制。此外,許多不同的程序可能共享一個數據庫進程(如果您安裝了應用程序的兩個實例,您是否需要安裝兩次數據庫?)。

大多數人(尤其是網絡管理員)不希望在他們的機器上安裝流氓 DMBS 的應用程序。

在您的安裝過程中,我不會花費大量時間來嘗試安裝數據庫。 當供應商已經為您創建了安裝過程時,為什么要重新發明輪子? 而是提前安裝數據庫並將安裝程序的重點放在運行必要的腳本上,以便您的應用程序可以在第一次啟動時連接到它。 它的意思是讓您的安裝程序擁有必要的驅動程序、連接信息和憑據,以便與數據庫進行通信以使其初始化。 初始化數據庫后,您可以使用其他例程來配置您的應用程序安裝,使其指向您在安裝期間初始化的數據庫。 采用這種方法不僅更容易,而且可以讓您的應用程序做更多有趣的事情,例如連接到遠程數據庫或一起跳過數據庫初始化並連接到現有數據庫。

也許您可以嘗試一個純 java 數據庫,如 hsql,或 h2,或 derby....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM