gpt4 book ai didi

java - 如何从 Linux 机器使用 java 和 jackcess 访问共享文件夹中的远程 .mdb 文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:21 24 4
gpt4 key购买 nike

这是我的第一篇文章。我正在尝试使用 jackcess lib 从 Linux 计算机打开 Windows 计算机共享文件夹中的远程 .mdb 文件。并在业务对象中设置表值。我写了下面的代码。

场景 1:我已经从 Windows 机器运行了代码,它工作正常。场景 2:如果我从 Linux 机器运行代码,则会出现文件未找到异常。希望这应该是一个小错误。请纠正我这里缺少的内容。

package com.gg.main;   

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
import com.penske.model.Login;


public class Test {

public static void main(String args[]){
Table table = null;
Database db = null;
Login login = null;
ArrayList<Login> rowList = null;
try {
rowList = new ArrayList();
db = Database.open(new File("//aa.bb.com/file/access.mdb"));

table = db.getTable("Maintenance");
System.out.println(Database.open(new File("//aa.bb.com/file/access.mdb"))
.getTable("Maintenance").getColumns());
for(Map<String, Object> row : table) {
login = new Login();
if(row.get("Req_ID")!=null){
login.setId(row.get("Req_ID").toString());
}
if(row.get("Name")!=null){
login.setName(row.get("Name").toString());
}if(row.get("Loc")!=null){
login.setLoc(row.get("Loc").toString());
}
rowList.add(login);
}

login.setRowList(rowList);
} catch (IOException e1) {
e1.printStackTrace();
}
}

}

最佳答案

Linux 没有对 Windows UNC 路径的 native 支持,因为您在此处使用它们:

new File("//aa.bb.com/file/access.mdb")

您必须将远程文件系统挂载到您的 Linux 文件系统中的某个位置,以便您的程序可以访问它,然后使用 smbfs 或类似的东西替换程序中的路径以使用本地文件系统路径。我已经很长时间没有与 Windows 机器交互了,但它应该是这样的:

mount -t smbfs -o username=foo,password=bar //aa.bb.com/file /mnt/whatever_you_choose_to_name_it

参见the manpage for smbmount了解详情。

当然,如果您的程序应该自动启动,例如。作为系统启动的一部分,您必须确保文件系统也自动安装。请参阅fstab(5)

关于java - 如何从 Linux 机器使用 java 和 jackcess 访问共享文件夹中的远程 .mdb 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com