簡體   English   中英

如何在Java中從命令行啟動msaccess數據庫?

[英]How to start msaccess database from command line in java?

我正在從事與數據庫相關的項目,並且我的MS-Access數據庫位於:

D:\\My Documents\\Database.accdb

因此,我使用以下命令來運行MS-Access:

cmd /c start MSACCESS D:\\My Documents\\database.accdb

在Java中:

view.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent E) {
        String[] command = {"cmd", "/c", "start MSACCESS D:\\My Documents\\Database.accdb"}
        Runtime.getRuntime().exec(command);
    }
});

Microsoft Access會立即啟動,但會引發以下錯誤:

“您用於啟動Microsoft Office Access的命令行包含Micosoft Access無法識別的選項”

接着:

“找不到數據庫文件'D:\\ My.mdb'”

因此,我假定它無法識別“我的文檔”中的空格,並且將其截斷為“我的”,因此我嘗試使用等效於NTFS 8.3的文件:D:\\ MYDOCU〜1 \\ Database.accdb,並拋出:

“找不到數據庫文件'D:\\ MYDOCU〜1 \\ Database.accdb'”

我真的不知道怎么了

“ D:\\ My Documents \\ Database.accdb”包含一個空格,並被視為附加參數(因此,它像{"cmd", "/c", "start", "MSACCESS", "D:\\\\My", "Documents\\\\Database.accdb"}到調用程序)

使用類似

String[] command = {"cmd", "/c", "start", "MSACCESS", "D:\\My Documents\\Database.accdb"};

代替...

更新

嘗試手動“縮短”路徑名是非常危險的,不建議這樣做。 如果您需要走這條路,那么您確實應該利用對OS的本地調用來告訴您應該如何縮短名稱,因此您和OS都知道您在談論同一件事

額外

另外,請嘗試從命令提示符處運行命令,以確保其有效;)

嘗試以下方法:

String[] command = {"cmd", "/c", "start \"MSACCESS D:\\My Documents\\Database.accdb\""}

PS:我不了解您的項目,但是根據您想對數據庫進行的操作,可以通過JDBC將其作為“普通” SQL數據庫打開是有意義的。 如果您想這樣做並發表疑問,請提出另一個問題。

暫無
暫無

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

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