m0_73269192 2023-02-15 13:51 采纳率: 41.2%
浏览 66
已结题

window 导出正常,linux导出有问题

FileSystemView systemView = FileSystemView.getFileSystemView();
        File homeDirectory = systemView.getHomeDirectory();
        //桌面路径
        String path = homeDirectory.getPath();
        String fileLocation = path +"\\"+ "操作日志.xlsx";
        FileOutputStream outputStream = new FileOutputStream(fileLocation);
        workbook.write(outputStream);
        workbook.close();

windows环境导出excel好用,部署到linux不好使。保存到桌面上的

  • 写回答

4条回答 默认 最新

  • MarkHan_ 2023-02-15 13:59
    关注

    根据您提供的代码,似乎问题出在文件路径的拼接上。在 Windows 上,文件路径使用的是反斜杠 "",而在 Linux 上,文件路径使用的是正斜杠 "/"。因此,如果您的代码在 Windows 上可以正常运行,在 Linux 上可能会出现路径错误的问题。

    为了解决这个问题,您可以考虑使用 Java 中的 File.separator 属性,它会自动根据操作系统的类型返回相应的路径分隔符。例如,您可以将代码中的:

    String fileLocation = path +"\\"+ "操作日志.xlsx";
    

    修改为:

    String fileLocation = path + File.separator + "操作日志.xlsx";
    

    这样,在不同的操作系统上运行程序时,程序都可以自动适应相应的路径分隔符。

    另外,还需要注意的是,在 Linux 系统中,可能会因为文件权限的问题而导致文件无法写入。因此,您还需要确保程序运行的用户具有足够的权限来写入指定的文件路径。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月17日
  • 已采纳回答 2月17日
  • 创建了问题 2月15日

悬赏问题

  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
  • ¥50 sft下载大文阻塞卡死
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失
  • ¥15 springboot+vue 集成keycloak sso到阿里云
  • ¥15 win7系统进入桌面过一秒后突然黑屏
  • ¥30 backtrader对于期货交易的现金和资产计算的问题