尝试使用中文符号调用Paths.get时获取java.nio.file.InvalidPathException

时间:2018-12-05 10:44:27

标签: java ubuntu jvm

当我执行类似的代码

public static void main(String[] args) throws IOException {
    Path path = Paths.get("/home/user/folder/中文.pdf");
}

我遇到异常

Exception in thread "main" java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /home/user/folder/中文.pdf
at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
at sun.nio.fs.UnixPath.<init>(UnixPath.java:71)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
at java.nio.file.Paths.get(Paths.java:84)
at MyClass.main(MyClass.java:118)

为什么会抛出? 当我尝试在系统中手动创建文件时,一切正常。 我已经安装了所有必需的语言库。 在终端显示中呼叫$locale -a

C
C.UTF-8
POSIX
de_DE.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
sv_SE
sv_SE.iso88591
swedish
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8

操作系统:Kubuntu 18.04 64位;

KDE Plasma版本:5.12.6;

内核版本:4.15.0-42-通用;

java版本“ 1.8.0_191”

Java(TM)SE运行时环境(内部版本1.8.0_191-b12)

Java HotSpot(TM)64位服务器VM(内部版本25.191-b12,混合模式)

0 个答案:

没有答案