从unix写入Windows网络共享

时间:2013-07-24 10:48:19

标签: java networking share

下面的代码就像在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机器运行此代码。程序运行,但不写我的文件或抛出异常。任何想法?

干杯

2 个答案:

答案 0 :(得分: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计算机。

答案 1 :(得分:0)

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

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

我建议检查此类路径是否存在,并且99%的可能性您无权创建它们。这或多或少

  

String filePath =“/ usr / xx /”;

创建文件夹:

File temp = new File("temp");
boolean test = temp.mkDir();