0

以下代码在 windows 下的 eclipse 中就像一个魅力:

public static void main(String[] args) 
{
    try
    {
        String filePath = "\\\\myserver\\dir";
        String fileName = "myFile.txt";
        FileWriter myFileWriter = new FileWriter(filePath + File.separator + fileName); 
        BufferedWriter myBufferedWriter = new BufferedWriter(myFileWriter);
        myBufferedWriter.write("test");
        myBufferedWriter.close();       
    }
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

现在我想从同一网络中的 unix 机器上运行这段代码。程序运行,但不写入我的文件或引发异常。有什么想法吗?

干杯

4

2 回答 2

1

如果该目标 unix 机器安装了 Samba,您可能需要尝试以下库:

http://jcifs.samba.org/

不过,您将需要用户名和密码。

try {
        String filePath = "myserver/dir";
        String fileName = "myFile.txt";
        String user = "username";
        String password = "password";
        // URL: smb://user:passwd@host/share/filname
        SmbFileOutputStream out = new SmbFileOutputStream("smb://" + user + ":" + password + "@" + filePath
                + File.separator + fileName);
        out.write("test".getBytes());
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

如果服务器配置为 SMB 服务器,这也适用于作为目标的 Windows 计算机。

于 2013-07-24T11:20:31.613 回答
0

因为在 Unix/Linux 中这不是正确的路径

String filePath = "\\\\myserver\\dir";

我建议检查这样的路径是否存在,99% 的机会你将无权创建它们。或多或少

字符串文件路径 = "/usr/xx/";

创建文件夹:

File temp = new File("temp");
boolean test = temp.mkDir();
于 2013-07-24T10:51:09.890 回答