Java 是什么原因引起的;无法访问jarfile";错误?

Java 是什么原因引起的;无法访问jarfile";错误?,java,jar,executable-jar,Java,Jar,Executable Jar,我想在不使用IDE的情况下执行我的程序。 我已经创建了一个jar文件和一个可执行的jar文件。什么时候 我双击exe jar文件,什么也没有发生,当我尝试在cmd中使用命令时,它给出了以下信息: Error: Unable to access jarfile <path> 错误:无法访问JAR文件 我使用命令:java-jar Calculator.jar java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloW

我想在不使用IDE的情况下执行我的程序。 我已经创建了一个jar文件和一个可执行的jar文件。什么时候 我双击exe jar文件,什么也没有发生,当我尝试在cmd中使用命令时,它给出了以下信息:

Error: Unable to access jarfile <path>
错误:无法访问JAR文件
我使用命令:
java-jar Calculator.jar

java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin
我是如何创建jar的:

  • 右键单击项目文件夹(计算器)
  • 挑选
  • 单击Java文件夹并选择“可执行Jar文件”,然后选择next
  • 启动配置:主-计算器
  • 创建导出目标
  • 点击“完成”和利润!嗯,不是真的
  • 固定的


    我只是把它放在另一个文件夹中,它就工作了。

    我在运行Jar文件时遇到了这个问题

    java-jartestjar

    而不是

    java-jartestjar.jar


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

    如果没有正确提供参数列表,也会发生此问题。以下是我所做的:

    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
    

    我在尝试启动jar文件时遇到了同样的问题。路径包含一个空格,因此我必须在其周围加引号。而不是:

    java -jar C:\Path to File\myJar.jar
    
    我不得不写信

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

    对我来说,如果在路径中的foldername中使用本地波兰语字符,就会发生这种情况。
    因此,使用不典型的字符可能是问题的原因。

    只是在尝试制作坏的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
    
    解决方案

    第一步

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

    第二步

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

    cd C:\fw\ducky\
    
    然后我键入了
    dir
    ,看到文件名为
    duckencode.jar.jar

    java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin
    
    因此,在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现在位于目录中


    希望这有帮助。

    我的特殊问题是因为我使用的目录涉及符号链接(快捷方式)。因此,尝试
    java-jar.././myJar.jar
    并没有起作用,因为我并没有达到我想象的那样


    忽略相对文件路径会立即修复它。

    有时,当您在android studio中右键单击/libs文件夹下的.jar文件(运行或创建)时,会发生这种情况。您可以选择android stuio顶部的下拉列表,并将其更改为应用程序。这会奏效的


    [可能仅限Windows]

    当心路径中的空格,即使您的jar位于当前工作目录中。例如,对我来说,这是失败的:

    java -jar myjar.jar
    
    我可以通过给出jar的完整引用路径来解决这个问题:

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

    要归功于将我设置在正确的路径上……

    我遇到了类似的问题,TextMate或其他东西将双引号替换为unicode双引号


    将我的
    SELENIUM\u SERVER\u JAR
    从unicode双引号更改为常规双引号,这解决了我的问题。

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

    我在Windows中的CygWin下遇到了这个问题。我在别处读到Java不理解CygWin路径(
    /cygdrive/c/some/dir
    而不是
    c:\some\dir
    )-因此我使用了相对路径:
    。/../some/dir/sbt-launch.jar
    ,这对我来说很有效

    cd /path/to/the/jar/
    
    java -jar ./Calculator.jar
    

    在我的例子中,建议使用的文件名是命令行中的
    jarFile*.jar
    。文件夹中的文件是
    jarFile-1.2.3.jar
    。因此,我将该文件重命名为
    jarFile
    。然后我使用了
    jarFile.jar
    而不是
    jarFile*.jar
    ,然后问题得到了解决

    我使用了NetBeans,也遇到了同样的问题。在我运行构建和清理项目之后,我的程序是可执行的。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计算机上,当文件夹名称中有空格时,可能会发生这种情况。解决方案是输入“”之间的路径。 例如:

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

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

    我知道这条线是几年前的事了,问题也解决了。但我希望这将在将来帮助其他人,因为我在尝试安装Oracle WebLogic 12c和Oracle OFR时遇到了一些类似的问题,其安装程序是
    .jar
    格式的。在我的例子中,要么没有将JDK目录用引号括起来,要么只是输入错误

    以管理员身份运行
    命令提示符
    ,并以此格式执行命令。如果有拼写错误,请仔细检查句子

    “C:\ProgramFiles\Java\jdk1.xxxxx\bin\Java”-jar C:\Users\xxx\Downloads\xxx.jar

    java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin
    
    如果它显示类似于
    JRE 1.xxx的内容不是有效的JDK Java Home
    ,请确保环境变量中
    Java\u Home
    的系统变量指向正确的JDK控制器
    %Java8_64%\bin\java -jar myjar.jar
    
    java -jar myjar.jar
    
    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
    
    java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb