java.nio.file.InvalidPathException異常解決
一.問題概述
本人在ubuntu22.04的操作系統(tǒng)上,運(yùn)行java程序時(shí)創(chuàng)建一個(gè)文件時(shí),由于文件名稱中包含了中文,所以導(dǎo)致了程序拋出了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環(huán)境中調(diào)試程序來跟蹤錯(cuò)誤時(shí),卻發(fā)現(xiàn)本地的程序創(chuàng)建含有中文名稱的文件是可以成功的。所以初步判斷應(yīng)該是ubuntu22.04的操作系統(tǒng)字符編碼的問題。而且ubuntu22.04的操作系統(tǒng)會有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操作系統(tǒng)的鏡像源更換為阿里云ECS鏡像源,這樣方便下載和安裝軟件。
2.清理軟件包緩存
apt-get clean
3.更新軟件包索引
apt-get update
4.安裝locales
apt-get install -y locales
5.指定語言環(huán)境
locale-gen en_US.UTF-8
6.指定文件編碼啟動JVM
java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar xxx.jar
通過以上6個(gè)步驟的處理,然后重啟ubuntu22.04操作系統(tǒng),最后程序在創(chuàng)建中文名稱的文件成功,InvalidPathException異常的問題得以解決。
到此這篇關(guān)于java.nio.file.InvalidPathException異常解決的文章就介紹到這了,更多相關(guān)java.nio.file.InvalidPathException異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java.lang.ExceptionInInitializerError異常的解決方法
- 文件路徑正確,報(bào)java.io.FileNotFoundException異常的原因及解決辦法
- Java中java.lang.ClassCastException異常原因及解決方法
- java.lang.NullPointerException異常問題解決方案
- 解決java.util.NoSuchElementException異常的問題
- Java 異常java.lang.NoSuchFieldException解決方案
- Java類加載異常:java.lang.ClassNotFoundException解決方法
- 詳解Java中NullPointerException異常的原因詳解以及解決方法
相關(guān)文章
Reactor中的onErrorContinue?和?onErrorResume
這篇文章主要介紹了Reactor中的onErrorContinue?和?onErrorResume,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
Java項(xiàng)目打包與部署的完全指南(JAR vs WAR)
本文詳細(xì)介紹了Java項(xiàng)目的打包與部署流程,涵蓋JAR包與WAR包的區(qū)別、Maven與Gradle打包命令、以及部署JAR與WAR包的具體步驟,無論是SpringBoot項(xiàng)目還是傳統(tǒng)Web應(yīng)用,都能從中獲得實(shí)用指導(dǎo),需要的朋友可以參考下2026-05-05
應(yīng)用Java泛型和反射導(dǎo)出CSV文件的方法
這篇文章主要介紹了應(yīng)用Java泛型和反射導(dǎo)出CSV文件的方法,通過一個(gè)自定義函數(shù)結(jié)合泛型與反射的應(yīng)用實(shí)現(xiàn)導(dǎo)出CSV文件的功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
idea中g(shù)it如何修改commit(ChangeList的使用)
這篇文章主要介紹了idea中g(shù)it如何修改commit(ChangeList的使用),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
線程池之jdk1.8 Executors創(chuàng)建線程池的幾種方式
這篇文章主要介紹了線程池之jdk1.8 Executors創(chuàng)建線程池的幾種方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Java?Scanner?類讀取一維數(shù)組二維數(shù)組示例詳解
這篇文章主要為大家介紹了Java?Scanner?類讀取一維數(shù)組二維數(shù)組示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Java實(shí)現(xiàn)畫圖的詳細(xì)步驟(完整代碼)
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java實(shí)現(xiàn)畫圖的詳細(xì)步驟展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Java實(shí)現(xiàn)簡單局域網(wǎng)聊天室
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單局域網(wǎng)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

