java.nio.file.InvalidPathException异常解决

 更新时间:2025年09月10日 09:33:14   作者:yaoxtao  
本人在ubuntu22.04的操作系统上,运行java程序时创建一个文件,由于文件名称中包含了中文,所以导致了程序抛出了java.nio.file.InvalidPathException的异常,感兴趣的可以了解一下

一.问题概述

本人在ubuntu22.04的操作系统上,运行java程序时创建一个文件时,由于文件名称中包含了中文,所以导致了程序抛出了java.nio.file.InvalidPathException的异常。

java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: 样例-1.txt
	at java.base/sun.nio.fs.UnixPath.encode(UnixPath.java:121)
	at java.base/sun.nio.fs.UnixPath.<init>(UnixPath.java:68)
	at java.base/sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:279)
	at java.base/java.nio.file.Path.resolve(Path.java:515)

二.问题分析

        在本地的windows环境中调试程序来跟踪错误时,却发现本地的程序创建含有中文名称的文件是可以成功的。所以初步判断应该是ubuntu22.04的操作系统字符编码的问题。而且ubuntu22.04的操作系统会有bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)的提示信息。

三.解决方案

1.替换镜像源

sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g' /etc/apt/sources.list

可以将ubuntu22.04操作系统的镜像源更换为阿里云ECS镜像源,这样方便下载和安装软件。

2.清理软件包缓存

apt-get clean

3.更新软件包索引

apt-get update

4.安装locales

apt-get install -y locales

5.指定语言环境

locale-gen en_US.UTF-8

6.指定文件编码启动JVM

java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar xxx.jar 

通过以上6个步骤的处理,然后重启ubuntu22.04操作系统,最后程序在创建中文名称的文件成功,InvalidPathException异常的问题得以解决。

到此这篇关于java.nio.file.InvalidPathException异常解决的文章就介绍到这了,更多相关java.nio.file.InvalidPathException异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java图形界面Swing原理及用法解析

    Java图形界面Swing原理及用法解析

    这篇文章主要介绍了Java图形界面Swing原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java 调整格式日志输出

    Java 调整格式日志输出

    本文主要介绍Java 的日志输出格式,在开发java的时候会经常看日志进行调试或者查看错误,这里给大家介绍日志输出调整格式,以便大家看日志的时候更加方便,
    2016-07-07
  • 解读yml文件中配置时间类型的转换方式

    解读yml文件中配置时间类型的转换方式

    这篇文章主要介绍了yml文件中配置时间类型的转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • shiro整合springboot前后端分离

    shiro整合springboot前后端分离

    这篇文章主要介绍了shiro整合springboot前后端分离,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 使用java实现日志工具类分享

    使用java实现日志工具类分享

    这篇文章主要介绍的Java代码工具类是用于书写日志信息到指定的文件,并且具有删除之前日志文件的功能,需要的朋友可以参考下
    2014-03-03
  • 解决新版 Idea 中 SpringBoot 热部署不生效的问题

    解决新版 Idea 中 SpringBoot 热部署不生效的问题

    这篇文章主要介绍了解决新版 Idea 中 SpringBoot 热部署不生效的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 设计模式之原型模式_动力节点Java学院整理

    设计模式之原型模式_动力节点Java学院整理

    这篇文章主要介绍了设计模式之原型模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Jenkins发送测试报告邮件过程详解

    Jenkins发送测试报告邮件过程详解

    这篇文章主要介绍了Jenkins发送测试报告邮件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)

    详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)

    这篇文章主要介绍了详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • MyBatis-Plus ORM数据库和实体类映射方式

    MyBatis-Plus ORM数据库和实体类映射方式

    本文详细介绍了MyBatis-Plus(MP)在数据库和Java对象映射方面的功能,包括基本映射、主键生成策略、复杂映射(如嵌套对象和集合类型)以及自定义SQL的使用,MP通过丰富的注解和XML配置,简化了数据库操作,提高了开发效率
    2025-01-01

最新评论