gpt4 book ai didi

java - 需要在不更改java代码的情况下覆盖windows默认的file.separator

转载 作者:行者123 更新时间:2023-11-28 22:27:34 32 4
gpt4 key购买 nike

产品代码在 UNIX 上运行,但需要在 Windows 上运行本地 DEV。

当前代码从数据库获取 UNIX 格式的路径,然后使用 file.separator 在该路径上构建,它添加了窗口分隔符,导致 ftp 失败,因为目标路径格式不正确。例如:/incoming/ri-etl\DEV\Rulebooks/tate_rbid_1715_retest

/incoming/ri-etl from a DB setting

\DEV\Rulebooks 使用文件分隔符内置代码。

由于其他团队使用 MAC OS 开发,他们在本地看不到问题。试图在 Tomcat ARGSJAVA_OPTS 中使用 -DFile.Separator=\/(和其他变体)覆盖 path.separator >CATALINA OPTS 但没有成功。

我认为如果我可以强制使用 UNIX 格式,Windows 将接受它并且 FTP 将工作。 FTP 不接受全部构建为 WINDOWS 格式的路径。

我正在 ECLIPSE(TOMCAT 8、Java 7、Eclipse MARS)中运行 TOMCAT

有什么想法吗?

最佳答案

Apache Commons 在这里派上用场:

FileNameUtils.separatorsToSystem() 将执行您正在寻找的操作。

public static void main(String[] args) throws Exception {

System.out.println(FilenameUtils.separatorsToSystem("/incoming/ri-etl\\DEV\\Rulebooks/tate_rbid_1715_retest"));

}

输出(在 mac 上):将 反斜杠 转换为 正斜杠

/incoming/ri-etl/DEV/Rulebooks/tate_rbid_1715_retest

关于java - 需要在不更改java代码的情况下覆盖windows默认的file.separator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346235/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com