【问题标题】:Difference in relative path on osx and windowsosx和windows上相对路径的差异
【发布时间】:2017-04-04 22:18:38
【问题描述】:
    try {

        byte[] encoded = Files.readAllBytes(Paths.get(getClass().getResource("/files/game.json").getFile()));
        return new String(encoded);

    } catch (Exception e) {
        return "";
    }

这个块在osx上工作,但是当我尝试在windows上运行它时,它找不到相对路径。

【问题讨论】:

    标签: java path relative-path


    【解决方案1】:
    private String getGameJSONFile() throws IOException {
    
        byte[] bytePath = new File("src/files/game.json").getCanonicalPath().getBytes();
    
        String path = new String(bytePath);
    
        Path p = Paths.get(path);
    
        byte[] encoded = Files.readAllBytes(p);
    
        return new String(encoded);
    }
    

    万一有人感兴趣,这就行了

    【讨论】:

      【解决方案2】:

      Windows 使用“\”,但因为“\”是转义字符,所以只需使用双反斜杠:

      ().getResource("\\files\\game.json")
      

      我希望这行得通!

      【讨论】:

      • 很好的答案,但它只是返回相同的错误。我可以补充一点,当我在 windows 计算机上使用直接路径提供 readAllBytes() 时,它会做它应该做的事情。
      • 哦,所以我不能再帮你了,我还是个初学者:) 对不起
      • 感谢您的尝试
      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 2017-12-03
      • 2017-09-30
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多