Command Prompt提示Unable to access jarfile问题求助
我完全懂你现在的困扰——Eclipse里跑起来顺风顺水的程序,放到命令行用java -jar就找不到Jar文件,哪怕移了文件夹也没用。咱们一步步来排查解决:
先核对命令行工作目录和Jar文件的位置
你在CMD里执行命令时,当前所在的文件夹必须和Copy.jar的实际位置一致,或者你得给Jar文件指定完整的绝对路径。
举个例子:如果你的Jar存在D:\MyProjects\CopyTool\dist\Copy.jar,要么先切换目录到这个路径:cd D:\MyProjects\CopyTool\dist java -jar Copy.jar InputFile.txt OutputFile.txt要么直接用绝对路径调用Jar:
java -jar D:\MyProjects\CopyTool\dist\Copy.jar InputFile.txt OutputFile.txt想确认当前工作目录的话,在CMD里输入
cd回车就能看到。检查Jar文件的实际文件名(别被Windows隐藏后缀坑了)
Windows默认会隐藏已知文件类型的后缀,比如你的Jar文件实际可能叫Copy.jar.txt,但你在资源管理器里看到的只是Copy.jar。
解决方法:打开文件资源管理器的「查看」选项卡,勾选「文件扩展名」,确认文件名确实是Copy.jar,没有多余的后缀。另外,尽量保证命令里的文件名和实际文件名大小写完全一致(虽然Windows大多时候不区分,但能避免不必要的问题)。重新导出Eclipse的Jar文件,确保文件完整有效
有时候Eclipse导出Jar时可能出现异常,导致文件损坏或不完整。你可以重新导出一次:
在Eclipse里右键项目 → 「Export」→ 选择「Java」→「Runnable JAR file」→ 确认「Launch configuration」是你平时运行的那个程序实例,选好「Export destination」后点击「Finish」。
导出后还可以用jar tf Copy.jar命令检查Jar内容,如果能正常列出里面的类文件和资源,说明Jar是有效的。提前留意输入输出文件的路径(避免Jar能运行后又出问题)
等Jar能正常启动后,还要注意InputFile.txt和OutputFile.txt的位置:如果没给绝对路径,程序会在CMD当前工作目录下查找这两个文件。所以要么把文件放到Jar同目录,要么在命令里指定绝对路径,比如:java -jar Copy.jar D:\MyData\InputFile.txt D:\MyData\OutputFile.txt
内容的提问来源于stack exchange,提问作者Keegan Moore




