2012-11-15 156 views
1

我有一个从URL读取文件中的Java程序Read看起来是这样的: file://myhost/system.logLinux的庆典:java.net.ConnectException:连接被拒绝

在Windows上我使用这个命令:

java Read "file://myhost/system.log"

它完美地工作。

但在Linux上,当我尝试使用它给了我这个错误相同的命令:

Exception in thread "main" java.net.ConnectException: Connection refused 
     at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
     at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
     at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
     at java.net.Socket.connect(Unknown Source) 
     at java.net.Socket.connect(Unknown Source) 
     at sun.net.ftp.impl.FtpClient.doConnect(Unknown Source) 
     at sun.net.ftp.impl.FtpClient.tryConnect(Unknown Source) 
     at sun.net.ftp.impl.FtpClient.connect(Unknown Source) 
     at sun.net.ftp.impl.FtpClient.connect(Unknown Source) 
     at sun.net.www.protocol.ftp.FtpURLConnection.connect(Unknown Source) 
     at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(Unknown Source) 
     at java.net.URL.openStream(Unknown Source) 
     at read.readInput(ReadHTML.java:53) 
     at read.readInput.main(ReadHTML.java:76) 

任何想法?

UPDATE: 我想我找到了问题: myhost不是用file://...

感谢所有的答案,伙计们安装在Linux机器,以便它无法连接到它!

+0

这可能是一个网络问题。任何防火墙?他们都在同一个网络上吗? – durron597

+0

他们在同一个网络上。它似乎没有任何网络问题,但我会仔细检查。 –

+1

你说这个URL看起来像'file:///',但是堆栈提示'FTP'协议。你确定这是正确的网址吗? –

回答

2

这是因为您的程序(凭借在Linux操作系统上使用file URL)尝试打开到URL中指定主机的FTP连接。 FTP连接的建立失败。

这可能是由于各种问题。尝试用FTP直接相连:

ftp myhost

而且我猜它会失败也是如此。你有没有安装&运行的FTP服务器?

+0

当使用'file:// host/...'URL时'FTP'是一种默认协议吗? –

+0

这很可能是这种情况,我没有安装并正在运行的ftp服务器。在Windows上,我可以通过在浏览器 –

+0

@jvivenot中键入'file:// myhost/system.log'来访问该文件,这是可能的。虽然我没有自己检查过。话虽如此,请考虑这一点:如果在'file'协议中指定了主机名,则文件(如果被访问)必须通过某些* networking *协议访问。它可能是FTP,SMB/CIFS,NFS ......取决于JDK的实现。在Windows下SMB/CIFS似乎更合适;在Linux下...嗯,它可能是FTP或NFS。 – Isaac

0

其中一个可能的原因可能是hosts.allow没有输入您的机器。

0

我怀疑你只需要第三个/。文件uris的正确语法是file:// [path],但[path]应该以/开头。

+0

不,它不起作用。 :( –

相关问题