我想在不使用IDE的情况下执行我的程序。 我已经创建了一个jar文件和一个exectuable jar文件。什么时候 我双击exe jar文件,没有任何反应,当我尝试在cmd中使用该命令时,它给了我这个:
Error: Unable to access jarfile <path>
我使用命令:java -jar Calculator.jar
我是如何创建jar的:
答案 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 打破了直接打开文件的异常和权限请求弹出窗口。
修复:
答案 9 :(得分:3)
我遇到了类似的问题,甚至尝试使用管理员权限运行CMD,但并没有解决问题。
基本的事情是确保将cmd中的目录更改为jar文件所在的当前目录。
执行以下步骤:
1。将jar文件复制到桌面。
运行CMD
类型命令cd desktp
然后键入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)
答案 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相同的文件夹中,因此不必添加路径。我还必须以管理员身份打开命令提示符。
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
:)祝你好运