0

我需要使用java程序从windows机器访问位于solaris机器中的共享位置。我写了一个代码,但是当它运行时抛出一个运行时异常。请看下面的代码和错误

public class SambaDemo {
    public static void main(String[] args) throws IOException {
        String user = "username";
        String pass = "password";

        String sharedFolder = "shared";
        String path = "smb://1**.**.**.**/";
        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", user, pass);
        SmbFile smbFile = new SmbFile(path, auth);
        SmbFileOutputStream smbfos = new SmbFileOutputStream(smbFile);
        smbfos.write("testing....and writing to a file".getBytes());
        System.out.println("completed ...nice !");
    }
}

请查看我得到的错误

Exception in thread "main" jcifs.smb.SmbException: Failed to connect: hostname/***.**.**.**
jcifs.util.transport.TransportException
java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:378)
    at java.net.Socket.connect(Socket.java:537)
    at java.net.Socket.connect(Socket.java:487)
    at java.net.Socket.<init>(Socket.java:384)
    at java.net.Socket.<init>(Socket.java:198)
    at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:185)
    at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:247)
    at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:312)
    at jcifs.util.transport.Transport.run(Transport.java:232)
    at java.lang.Thread.run(Thread.java:736)

    at jcifs.util.transport.Transport.run(Transport.java:248)
    at java.lang.Thread.run(Thread.java:736)

    at jcifs.smb.SmbTransport.connect(SmbTransport.java:299)
    at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156)
    at jcifs.smb.SmbFile.doConnect(SmbFile.java:906)
    at jcifs.smb.SmbFile.connect(SmbFile.java:949)
    at jcifs.smb.SmbFile.connect0(SmbFile.java:875)
    at jcifs.smb.SmbFile.open0(SmbFile.java:965)
    at jcifs.smb.SmbFile.open(SmbFile.java:999)
    at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
    at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:97)
    at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:67)
    at com.java.samba.test.SambaDemo.main(SambaDemo.java:18)

为了运行,您需要提供主机名、IP 地址、用户名和密码。我期待一些专家的帮助。非常感谢。

4

1 回答 1

0

“连接被拒绝”意味着主机没有在该端口上侦听。您需要确保 samba 服务正在该主机上运行。

我会检查您是否可以先将文件系统挂载为驱动器号。

于 2013-07-29T15:06:26.830 回答