可能重复:
Not possible to launch a file on a network using Java Desktop?
我正在尝试使用Desktop API为文件启动相应的应用。所以我正在使用它:
if (Desktop.isDesktopSupported())
Desktop.getDesktop().open(new File(path));
其中“path”是指向文件的String。
在我收到IOException时,一切正常,直到我尝试启动驻留在网络位置的jpg(例如“\\ MyNet \ folder \ image.jpg”):
java.io.IOException:无法打开 文件:////MyNet/folder/image.jpg
任何人都知道是否有办法解决这个问题?
答案 0 :(得分:1)
我认为您需要以标准URI格式指定文件位置/名称 - 除了服务器之外,它接近标准格式。有关详细信息,请参阅URI Class的javadoc。
在最高级别,字符串形式的URI引用(以下简称“URI”)具有语法
[scheme:] scheme-specific-part [#fragment]
过了一会儿:
分层URI需要根据语法进一步解析
[scheme:] [//权限] [路径] [?查询] [#fragie]
因此URI应如下所示:
file://MyNet/folder/image.jpg
其中“file://”是协议,“MyNet”是服务器,“/ folder / images.jpg”是共享下的目录位置。
希望这有点帮助。
答案 1 :(得分:0)
file://// MyNet / folder / image.jpg不是文件路径。这是一个URL。
答案 2 :(得分:0)
File f = new File("\\\\192.168.0.4\\mybookrw\\save\\command.txt");
Desktop.getDesktop().open(f);
对我来说很好。需要注意的是,您必须已经对该共享进行了身份验证。如果您将路径粘贴到运行框中,它会提示您输入用户名和密码,那么它将无法从应用程序中运行。
答案 3 :(得分:0)
到目前为止,每个人都认为找不到该文件。
但是,查看Desktop open()
函数会抛出IOException
如果指定的文件没有关联 申请或相关的 应用程序无法启动
现在,说过,如果你在本地机器上打开jpg会怎么样?此外,如果您尝试通过网络手动启动jpg会发生什么?
编辑:实际上,问题可能是设置为打开jpg文件的默认程序无法理解file:// uris。坚持使用UNC路径可能是更好的选择。