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