什么原因导致“无法访问jar文件”错误?
我想执行我的程序,而不使用IDE。 我创build了一个jar文件和一个可执行的jar文件。 当我双击exe文件时,没有任何反应,当我尝试在cmd中使用命令时,它给了我这个:
Error: Unable to access jarfile <path>
我使用命令: java -jar Calculator.jar
我如何创buildjar:
- 右键单击项目文件夹(计算器)
- select
- 点击Java文件夹并select“可执行的Jar文件”,然后select下一步
- 启动configuration:主 – 计算器
- 创build导出目的地
- 打“完成”和利润! 那么,不是真的。
当我运行我的Jar文件时遇到了这个问题
java -jar TestJar
代替
java -jar TestJar.jar
固定
我只是把它放在不同的文件夹,它的工作。
[可能只有Windows]
注意path中的空格,即使当你的jar在当前的工作目录下。 例如,对我来说这是失败的:
java -jar myjar.jar
我能够通过提供完整的,引用的jar的path来解决这个问题:
java -jar "%~dp0\myjar.jar"
信贷去这个答案设置我在正确的道路….
试图启动jar文件时,我遇到了同样的问题。 path中包含一个空格,所以我不得不引用引号。 代替:
java -jar C:\Path to File\myJar.jar
我必须写
java -jar "C:\Path to File\myJar.jar"
我有这个问题在Windows下的CygWin。 我已经在其他地方看到,Java不理解CygWinpath( /cygdrive/c/some/dir
而不是C:\some\dir
) – 所以我使用了一个相对path: ../../some/dir/sbt-launch.jar
/cygdrive/c/some/dir
../../some/dir/sbt-launch.jar
。
刚刚遇到同样的问题,试图使一个糟糕的USB …
我试图在admin cmd中运行这个命令
java -jar c:\fw\ducky\duckencode.jar -I c:\fw\ducky\HelloWorld.txt -oc:\fw\ducky\inject.bin
但是得到这个错误:
Error: unable to access jarfile c:\fw\ducky\duckencode.jar
解
第一步
右键点击问题的jar文件。 点击属性。 点击右下angular的解除阻止标签。 该文件被阻止,因为它被下载,而不是在我的电脑上创build。
第二步
在cmd中,我将目录更改为jar文件所在的位置。
cd C:\fw\ducky\
然后我inputdir
,看到文件名为duckencode.jar.jar
所以在cmd中,我改变了原来的命令,用.jar.jar
来引用这个文件
java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt -oc:\fw\ducky\inject.bin
该命令执行时没有错误信息,我试图创build的inject.bin现在位于目录中。
希望这可以帮助。
有时它会发生,当你尝试(运行或创build)在/ libs文件夹下的.jar文件,通过右键单击它在android studio中。 你可以selectandroid stuio顶部的下拉菜单,并将其更改为应用程序 。 这将工作
如果您没有正确提供参数列表,也会发生这种情况。 以下是我正在做的事情:
java -jar test@gmail.com testing_subject file.txt test_send_emails.jar
而不是正确的版本:
java -jar test_send_emails.jar test@gmail.com testing_subject file.txt
对于我来说,如果您在PATH中的文件夹名称中使用本地波兰语字符,则会发生这种情况。 所以也许使用非典型的字符是问题的原因。
在我的情况下,build议使用的文件名是jarFile*.jar
在命令行中。 该文件夹中的文件是jarFile-1.2.3.jar
。 所以我把文件重命名为jarFile
。 然后,我用jarFile.jar
而不是jarFile*.jar
,然后问题得到解决
这对我java -jar "filename.jar"
我的特殊问题是由于我正在处理涉及符号链接(快捷方式)的目录造成的。 因此,尝试使用java -jar ../../myJar.jar
不起作用,因为我不在自己以为的地方。
忽略相对文件path将其固定。
我有一个类似的问题,其中TextMate或用双引号replace双引号双引号。
将我的SELENIUM_SERVER_JAR
从unicode双引号更改为常规双引号,并解决了我的问题。
这是因为您正在寻找错误path中的文件1.查找放置文件的文件夹的path2.在cmd中更改目录cd使用正确的path
这对我有效。
cd /path/to/the/jar/ java -jar ./Calculator.jar
我使用NetBeans并具有相同的问题。 我运行构build和清理项目后,我的程序是可执行的。 Java文档说build / clean命令基本上是从头重新编译项目,并删除任何过去的编译。 我希望这有帮助。 另外,我会阅读文档。 Oracle拥有NetBeans和Java学习资源。 很有帮助。 祝你好运!
也许你已经指定了你的jar的错误版本。
如果您正在使用OSX,则下载的文件将标记一个安全标志,以防止未签名的应用程序运行。
要检查这个,你可以查看文件的扩展属性
$ ls -l@ -rw-r--r--@ 1 dave staff 17663235 13 Oct 11:08 server-0.28.2-java8.jar com.apple.metadata:kMDItemWhereFroms 619 com.apple.quarantine 68
您可以使用清除属性
xattr -c file.jar
如果文件夹的名称中有空格,可能会发生在Windows机器上。 解决办法是input“”之间的path。 例如:
java -jar c:\my folder\x.jar --> java -jar "c:\my folder\x.jar"
在我的问题从命令行(在Windows中)访问目录这个错误
“无法访问…”
因为文件扩展名错误
file.jar.jar
! ,所以改变它来纠正一个
file.jar
:) 祝你好运