繁体   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