跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何修改设置避免 windows 上 Java 将 symlink 解析回源路径
未分類
18 4 月 2021

如何修改设置避免 windows 上 Java 将 symlink 解析回源路径

如何修改设置避免 windows 上 Java 将 symlink 解析回源路径

資深大佬 : laqow 10

Windows 没有 symlink,但有一个 mklink 工具能在 NTFS 上创建类似 Linux 的符号链接,从而让一些需要绝对路径的操作变成相对路径,避免一些跨 linux 和 windows 的程序在解析带盘符路径时遇到问题。

然而鸡掰 Java 虚拟机总是将 mklink 创建的 symlink 还原回原始路径,让这个方法不可用。

可能是 Java 适配了 window 的 symlink,并把它当成传统的快捷方式,不改变代码时类似./def/temp(<==>E:abctemp)的地址会变成访问 E:abctemp,这样在访问类似./def/temp/../ 的路径时,Java 实际在访问 E:abc 或者./def/E/abc/../ 这样的路径,而不是./def,让一些没有做系统适配的程序出问题。

请问如何修改设置避免 windows 上 Java 将 symlink 解析回源路径。

大佬有話說 (3)

  • 資深大佬 : nannanziyu

    https://docs.oracle.com/javase/8/docs/api/java/nio/file/LinkOption.html
    默认行为是 Follow,也就是原始路径; NOFOLLOW_LINKS,不寻找原始路径

  • 資深大佬 : Osk

    我记得 mklink 有几种参数,试试其它类型的 link ?

  • 主 資深大佬 : laqow

    @nannanziyu 谢谢。对 Java 不熟,请问这个参数可以在 java -D 或什么地方全局设置吗?

    @Osk 对文件夹的有 /d 和 /j 两种方式,两种都会解析回原始路径

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具