Java 错误:无法访问文件。编码问题

Java 错误:无法访问文件。编码问题,java,windows,jar,windows-10,Java,Windows,Jar,Windows 10,这个问题似乎微不足道,但到目前为止还没有找到解决办法 C:\Users\User>"C:\Program Files\Java\jdk1.8.0_112\bin\java" -jar "D:\Valya\Учёба\ТРПК\наумов_трпк_лаб2\build\libs\naumov_trpk_lab2-runnable.jar" Error: Unable to access jarfile D:\Valya\?????\????\??????_????_???2\build\

这个问题似乎微不足道,但到目前为止还没有找到解决办法

C:\Users\User>"C:\Program Files\Java\jdk1.8.0_112\bin\java" -jar "D:\Valya\Учёба\ТРПК\наумов_трпк_лаб2\build\libs\naumov_trpk_lab2-runnable.jar"
Error: Unable to access jarfile D:\Valya\?????\????\??????_????_???2\build\libs\naumov_trpk_lab2-runnable.jar
只有当我尝试访问位于非ASCII名称目录中的jar时,才会出现此问题。当我在Windows7上的时候,我100%确信我可以用这样的路径运行JAR,但是自从我赢得10次之后,就没有运气了。引用路径也没有帮助,
-Dfile.encoding=UTF8

顺便说一句,如果我从Intellij IDEA运行应用程序,单击main方法,我会得到以下错误

"C:\Program Files\Java\jdk1.8.0_112\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_112\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_112\jre\lib\rt.jar;D:\Valya\Учёба\тест-кириллицы\out\production\тест-кириллицы;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2.5\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main
Exception in thread "main" java.lang.ClassNotFoundException: Main
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
我的java版本是

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
请随意询问任何其他信息,因为我没有任何线索

UPD 我遇到问题的Windows的原始版本是Win 10 LTSB,安装了英语(美国)语言环境。但是在虚拟机上从头安装了俄罗斯语言环境之后,问题就消失了。输出为:

C:\Users\User\Documents>java -jar наумов_тпрк_лаб2.jar
Error: Invalid or corrupt jarfile эрєьют_ЄяЁъ_ырс2.jar

是的,因为它是纯文本而损坏,但找到了路径,没有原始错误。不要让字母愚弄你,这不是chcp问题:虽然原始代码页是866,但任何其他代码页都让java找到文件的路径。

首先,
-Dfile.encoding=UTF8
与文件名无关,但与文件名有关

还有甜蜜的部分

  • 打开“开始”菜单,键入以查找“区域和语言设置”
  • 转到相关设置。

  • 然后点击更改位置。。。

  • 设定合适的国家


  • 所以,它终于起作用了,但我希望有人能提供这方面的详细信息。

    您是否尝试过在完整路径上加引号?CMD可以读取非ascii路径,但不能显示。@umais gillani是的,我读过。修正了答案,所以很清楚