当前位置: 首页 > 面试题库 >

无法使用Java Desktop在网络上启动文件?

赵雪峰
2023-03-14
问题内容

我有一个位于共享网络位置的文件:

"\\KUROSAVVAS-PC\Users\kuroSAVVAS\Desktop\New     Folder\Warsaw    Panorama.JPG"

(有意留有空格)

如下代码:

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;

public class Test {

    public static void main(String[] args) {
        try {
            String s = "\\\\KUROSAVVAS-PC\\Users\\kuroSAVVAS\\Desktop\\New     Folder\\Warsaw    Panorama.jpg";
            File f = new File(s);
            System.out.println(f.exists());
            Desktop.getDesktop().open(f);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

打印到该文件存在的控制台( System.out.println(f.exists()); ),但抛出此异常!:

java.io.IOException: Failed to open file:////KUROSAVVAS-PC/Users/kuroSAVVAS/Desktop/New%20%20%20%20%20Folder/Warsaw%20%20%20%20Panorama.jpg. Error message: The system cannot find the file specified.

    at sun.awt.windows.WDesktopPeer.ShellExecute(WDesktopPeer.java:59)
    at sun.awt.windows.WDesktopPeer.open(WDesktopPeer.java:36)
    at java.awt.Desktop.open(Desktop.java:254)
    at Test.main(Test.java:13)

有谁知道为什么会发生这种情况?我已经尝试了从创建URI到随后对其进行解码的所有操作……没有任何效果。


问题答案:

当您尝试访问路径中带有空格的网络驱动器上的资源时,似乎存在一个错误。请参阅Sun的错误数据库中的此项。

由于该错误已经存在一年了,所以我认为您不会很快得到修复。试用最新的VM。如果这样做没有帮助,请尝试获取的源WDesktopPeer。与其对路径进行编码,不如对其进行编码(使用反斜杠和所有斜线),并在其周围加上引号。那可能行得通。

[EDIT]特别是,请勿将替换\/,不要在其前面加上file://空格(不要将其替换为%20



 类似资料:
  • 我正在尝试使用Selenium执行自动化测试 org.openqa.selenium.WebDriverExc0019:错误转发新会话找不到:功能[{BrowserName=chrome, chromeOptions={args=[--start-最大化,--disable-web-Security],扩展=[], prefs={credentials_enable_service=false,p

  • 请帮帮我.我使用的是Ubuntu 16.04

  • 在升级到firefox 26.0之前,我在firefox的早期版本中使用了selenium 2.35。以前我的测试运行得很好,但现在我得到了以下错误。 我试图降级火狐的版本,但无法从mozilla网站获得任何以前的版本。 我还尝试了所有的selenium版本2.36,2.37,2.38,2.39但似乎没有一个与火狐26.0兼容。一旦我试图用2.36到2.39替换selenium 2.35,代码中就

  • 问题内容: 美好的一天! 我创建了jar文件(使用Netbeans),但无法启动。该项目使用lwjgl库。在我的IDE中,它运行良好。 我使用下一个命令: 答案是: 其他项目(没有此库)可以正常工作。我该如何解决这个错误? 我的清单是: 问题答案: 由于您需要将本地文件放在jar旁边,并通过’-Djava.library.path’参数指向它们,因此它无法按照您当前尝试的方式工作。 如果您只想要一

  • 我不能登录与默认管理员或测试到生成的JHipster(4.2.0)单片应用程序(maven,mysql在开发 控制台日志: 尝试将请求/api/配置文件信息从localhost:9060代理到时发生[HPM]错误http://127.0.0.1:8080 (经济学)(https://nodejs.org/api/errors.html#errors_common_system_errors)尝试将

  • 我无法从以下网页中读取电子邮件id: 网址:https://targetstudy.com/university/2/acharya-ng-ranga-agricultural-university/ 这是我的代码