該問題似乎微不足道,但目前還找不到解決方案。錯誤:無法訪問jarfile。編碼問題
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名稱的dir中的jar時纔會出現此問題。當我在Windows 7上時,我確信我可以運行帶有這種路徑的jar,但是由於我轉移到了Win 10,所以沒有運氣。引用路徑並沒有幫助,-Dfile.encoding=UTF8
也。
順便說一句,如果我從Intellij IDEA運行應用程序點擊主要的方法,我得到以下錯誤。
"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,關於這一點我有問題是運10 LTSB與英語(美國)區域設置安裝。但是,從虛擬機上重新安裝俄語區域設置,問題就沒有了。輸出是:
C:\Users\User\Documents>java -jar наумов_тпрк_лаб2.jar
Error: Invalid or corrupt jarfile эрєьют_ЄяЁъ_ырс2.jar
是的,因爲它是純文本,但路徑被發現,沒有原始錯誤。不要讓這些字母欺騙你,這不是一個chcp問題:雖然原始代碼頁是866,但任何其他讓java找到該文件的路徑。
你試過把報價放在完整的路徑上嗎? CMD可以讀取非ascii路徑,但不能顯示該路徑。 –
@ umais-gillani是的,我做到了。確定了答案,所以很明顯 – Valya