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

时间:2012-08-14 00:01:44

标签: java jar executable-jar

我想在不使用IDE的情况下执行我的程序。 我已经创建了一个jar文件和一个exectuable jar文件。什么时候 我双击exe jar文件,没有任何反应,当我尝试在cmd中使用该命令时,它给了我这个:

Error: Unable to access jarfile <path>

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

我是如何创建jar的:

  1. 右键单击项目文件夹(计算器)
  2. 选择
  3. 单击Java Folder并选择“Exectuable Jar File”,然后选择下一个
  4. 启动配置:主要 - 计算器
  5. 创建导出目的地
  6. 点击“完成”并获利!好吧,不是真的。

38 个答案:

答案 0 :(得分:60)

当我将Jar文件作为

运行时,我遇到了这个问题

<强> java -jar TestJar

而不是

<强> java -jar TestJar.jar

缺少扩展程序 .jar 也会导致此问题。

答案 1 :(得分:46)

<强>固定

我只是把它放在一个不同的文件夹中,然后就可以了。

答案 2 :(得分:24)

[仅限Windows]

请注意路径中的空格,即使您的jar位于当前工作目录中也是如此。例如,对我而言,这是失败的:

java -jar myjar.jar

我能够通过givng指向jar的完整引用路径来解决这个问题:

java -jar "%~dp0\myjar.jar" 

归功于this answer,让我走上了正确的道路......

答案 3 :(得分:14)

我在Windows下的CygWin下遇到了这个问题。我在别处读过Java不理解CygWin路径(/cygdrive/c/some/dir而不是C:\some\dir) - 所以我使用了相对路径:../../some/dir/sbt-launch.jar

答案 4 :(得分:9)

刚刚遇到同样的问题,试图制造一个糟糕的USB ......

我尝试在admin cmd中运行此命令

java -jar c:\fw\ducky\duckencode.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

但得到了这个错误:

Error: unable to access jarfile c:\fw\ducky\duckencode.jar

<强>解决方案

第一步

右键单击有问题的jar文件。单击属性。 单击右下角的取消阻止选项卡。 该文件已被阻止,因为它已下载而未在我的PC上创建。

第二步

在cmd中,我将目录更改为jar文件所在的位置。

cd C:\fw\ducky\

然后我输入dir并看到该文件名为duckencode.jar.jar

因此在cmd中我更改了原始命令以引用.jar.jar

文件
java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

该命令在没有错误消息的情况下执行,而我尝试创建的inject.bin现在位于目录中。

希望这有帮助。

答案 5 :(得分:8)

我在尝试启动jar文件时遇到了同样的问题。路径包含一个空格,所以我不得不在周围放置引号。而不是:

java -jar C:\Path to File\myJar.jar

我必须写

java -jar "C:\Path to File\myJar.jar"

答案 6 :(得分:5)

这对我有用 java -jar "filename.jar"

答案 7 :(得分:4)

这对我有用。

cd /path/to/the/jar/

java -jar ./Calculator.jar

答案 8 :(得分:3)

所提供的答案在 macOS 11 Big Sur 上都不适合我。问题原来是程序需要特殊权限才能访问桌面、文档和下载文件夹,而 Java 打破了直接打开文件的异常和权限请求弹出窗口。

修复:

  • 将 .jar 移动到不是(也不在)Documents、Desktop 或 Downloads 的文件夹中。
  • 手动授予权限。转到系统偏好设置 → 安全和隐私 → 隐私 → 文件和文件夹 → java,然后检查相应的文件夹。

答案 9 :(得分:3)

我遇到了类似的问题,甚至尝试使用管理员权限运行CMD,但并没有解决问题。

基本的事情是确保将cmd中的目录更改为jar文件所在的当前目录

执行以下步骤:

1。将jar文件复制到桌面。

  1. 运行CMD

  2. 类型命令cd desktp

  3. 然后键入java -jar filename.jar

这应该有效。

答案 10 :(得分:3)

如果您使用的是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

答案 11 :(得分:3)

如果您没有正确提供参数列表,也会发生这种情况。这就是我在做的事情:

<a href = "#" id="linkHere">Select</a>


$('.linkHere').click(function(){

  $(this).text("Selected");

});

而不是正确的版本:

java -jar test@gmail.com testing_subject file.txt test_send_emails.jar

答案 12 :(得分:3)

有时当你尝试(运行或创建)/ libs文件夹下的.jar文件时,通过在android studio中右键单击它。你可以选择android stuio顶部的下拉列表并将其更改为 app 。这将有效

enter image description here

答案 13 :(得分:2)

在我的情况下,建议使用的文件名是命令行中的jarFile*.jar。文件夹中的文件是jarFile-1.2.3.jar。所以我将文件重命名为jarFile。然后我使用jarFile.jar代替jarFile*.jar,然后问题得到解决

答案 14 :(得分:2)

对我来说,如果你在PATH中的foldername中使用原生波兰语字符,就会发生这种情况。 所以也许使用非典型的字符是问题的原因。

答案 15 :(得分:2)

如果文件夹名称中有空格,则可能会在Windows计算机上发生。解决方案是进入&#34;之间的路径。 &#34 ;. 例如:

java -jar c:\my folder\x.jar    --> 
java -jar "c:\my folder\x.jar"

答案 16 :(得分:2)

要避免任何权限问题,请尝试以管理员身份运行它。这在Win10上对我有用。

答案 17 :(得分:2)

我知道该线程是几年前的,并且此问题也已修复。但是,我希望以后对其他人有帮助,因为我在尝试安装安装程序为.jar格式的Oracle WebLogic 12c和Oracle OFR时遇到了类似的问题。在我的情况下,不是将JDK目录用引号引起来,还是只是拼写错误。

以管理员身份运行Command Prompt并以这种格式执行命令。仔细检查句子中是否有错字。

  

"C:\Program Files\Java\jdk1.xxxxx\bin\java" -jar C:\Users\xxx\Downloads\xxx.jar

如果显示类似JRE 1.xxx is not a valid JDK Java Home的内容,请确保环境变量中JAVA_HOME的系统变量指向正确的JDK目录。建议使用JDK 1.8或更高版本(2018年)。

这里有用的线程,您可以参考它:Why its showing your JDK c:program files\java\jre7 is not a valid JDK while instaling weblogic server?

答案 18 :(得分:1)

我遇到了类似的问题,其中TextMate或其他东西用双引号替换双引号。

将我的SELENIUM_SERVER_JAR从unicode双引号更改为常规双引号,这解决了我的问题。

答案 19 :(得分:1)

发生这种情况是因为我使用默认的Java版本(7)而不是用于创建此jar的已编译Java版本(8)来运行它。

所以我用过:

%Java8_64%\bin\java -jar myjar.jar

代替Java 7版本:

java -jar myjar.jar

答案 20 :(得分:1)

将文件保留在要解压缩的目录中。那对我有用。

答案 21 :(得分:1)

我最终将jar文件粘贴到了与JDK相同的文件夹中,因此不必添加路径。我还必须以管理员身份打开命令提示符。

  1. 右键单击命令提示符,然后“以管理员身份运行”
  2. 导航到将jdk保存到的目录
  3. 在命令提示符下,键入:java.exe -jar <jar file name>.jar

答案 22 :(得分:1)

我的特殊问题是因为我正在处理涉及符号链接(快捷方式)的目录。因此,尝试java -jar ../../myJar.jar不起作用,因为我不在我想象的地方。

忽略相对文件路径,直接修复它。

答案 23 :(得分:1)

也许您已经指定了错误的jar版本。

答案 24 :(得分:1)

我使用NetBeans并遇到同样的问题。在我运行构建和清理项目后,我的程序是可执行的。 Java文档说build / clean命令用于从头开始重建项目并删除任何过去的编译。我希望这有帮助。另外,我阅读了文档。 Oracle具有NetBeans和Java学习资源。很有帮助。祝你好运!

答案 25 :(得分:1)

这是因为您正在寻找错误路径中的文件 1.查找放置文件的文件夹的路径 2.在cmd中更改目录cd使用正确的路径

答案 26 :(得分:0)

您是否尝试过在管理员特权下运行它? 含义,在“运行方式”中运行命令,然后选择具有适当管理员凭据的管理员

为我工作

答案 27 :(得分:0)

我正在尝试:

授予文件读取,写入后,执行特权:

chmod 777 java-repl.jar

alias jr="java -jar $HOME/Dev/java-repl/java-repl.jar"

无法访问bla ...,但这是在Mac OS上

所以我尝试了这个:

alias jr="cd $HOME/Dev/java-repl/ && java -jar java-repl.jar"

答案 28 :(得分:0)

这不起作用“无法访问jarfile”

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\ OneWireViewer.jar"

这确实有效

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\OneWireViewer.jar"

区别在于OneWireViewer.jar前面的单个空格,尽管它被引号引起来,甚至还有其他空格。

答案 29 :(得分:0)

如果您使用的是WSL,并遵循一条指导说明如下:

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

即使您在java.library.path部分中提供了完整路径,实际上也需要指定完整路径。

java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb

答案 30 :(得分:0)

这是权限问题,请查看目录是否在您的用户下。 这就是为什么要在另一个文件夹中工作!

答案 31 :(得分:0)

重命名jar文件并尝试

说明: 是的,我知道仍然有很多答案,我想在这里补充一点。

我构建了jar,然后将其移至部署的服务器中(这是正常过程) 在这里,我移动的文件名已经存在于服务器中,在这里文件显然会被覆盖。在这种情况下,我遇到了这个问题。 也许在覆盖时可能存在权限复制问题。

希望这会对某人有所帮助。

答案 32 :(得分:0)

对我来说,访问罐子所在的文件夹后问题得以解决 之前我在D:驱动器上发出命令,但是当我导航到放置该jar的文件夹时,此问题得到解决

答案 33 :(得分:0)

右键单击文件的父文件夹>属性>选中只读

答案 34 :(得分:-1)

首先,我创建了一个变量%JAVA_HOME% :

下载文件时,请确保检查文件属性中的UNBLOCK TAB,如上面“ maartencls”帖子中所示。

c:\users\my user\downloads\location of the file\all> java -jar yourfilename.jar

希望这可以解决问题:)

答案 35 :(得分:-1)

首次运行:java -version

然后运行:java -jar Calculator.jar

这对我有用。

答案 36 :(得分:-1)

您可以指定java.exe文件的完整路径,例如: “ c:\ Program Files \ Java \ jdk-9.0.4 \ bin \ java.exe” -jar path_to_your_jar_file.jar 对我有帮助 或检查系统中默认运行的java.exe文件(尤其是如果您有许多版本的JDK / JRE)。

答案 37 :(得分:-2)

我的问题是从命令行(在Windows中)访问目录这个错误

  

“无法访问...”

因错误的文件扩展名

  

file.jar.jar

! ,所以改为纠正一个

  

file.jar

:)祝你好运