[英]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.