【发布时间】:2016-07-13 11:56:55
【问题描述】:
操作系统:macbook
我想用 Java 读取远程文件。 我先在本地计算机上测试它。
-
我尝试使用
File,但是你们告诉我File只能在本地文件系统上使用,谢谢。public static void main(String[] args) throws URISyntaxException { URI uri = new URI("file://127.0.0.1/Users/jian/Public/logfiles/Hadoop/hdp_log1.log"); File file = new File(uri); System.out.println(file.exists()); } -
我从这个链接 access to file using Java with Samba JCIFS 找到了一个 Macbook 库,Samba JCIFS。这是我的代码:
public static void main(String[] args) throws URISyntaxException, MalformedURLException, SmbException { NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("","jian", "ywnk"); SmbFile smbFile = new SmbFile("smb://127.0.0.1/Users/jian/Public/logfiles/Hadoop/hdp_log1.log",auth); System.out.println(smbFile.exists()); }
然后我得到了这个错误:
线程“主”jcifs.smb.SmbAuthException 中的异常:登录失败:未知用户名或密码错误。
用户名与我在终端中运行who am i 相同,密码是我的登录密码。我不知道为什么会收到此用户名或密码错误错误。
谢谢你们的帮助。
【问题讨论】:
-
这有帮助吗:stackoverflow.com/questions/11724576/…?要处理该文件,您似乎需要将其复制到本地驱动器。
-
看看this link。它包含有关 uri 权限组件的信息。基本上,
hostname:port构成了权限组件。 -
我不确定权限组件的确切含义,但听起来可能是权限问题。
-
这不是用于
File的合法URI。为什么File?这是 2016 年,you should not useFileanymore -
你可以尝试使用
file://localhost/Users/jian/Public/logfiles/Hadoop/hdp_log1.log还是只使用file:///Users/jian/Public/logfiles/Hadoop/hdp_log1.log