什么原因导致“无法访问jar文件”错误?

我想执行我的程序,而不使用IDE。 我创build了一个jar文件和一个可执行的jar文件。 当我双击exe文件时,没有任何反应,当我尝试在cmd中使用命令时,它给了我这个:

Error: Unable to access jarfile <path> 

我使用命令: java -jar Calculator.jar

我如何创buildjar:

  1. 右键单击项目文件夹(计算器)
  2. select
  3. 点击Java文件夹并select“可执行的Jar文件”,然后select下一步
  4. 启动configuration:主 – 计算器
  5. 创build导出目的地
  6. 打“完成”和利润! 那么,不是真的。

当我运行我的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

:) 祝你好运