我不熟悉Java,我正在尝试运行一个打包为jar文件的Java代码。
在Windows命令行上,我将CLASSPATH指定到我的jar文件夹,如下所示:
set CLASSPATH="D:\jarFolder"
该文件夹中有一个test.jar文件。但是当我运行这个
java -jar test.jar
它仍然因此错误而失败:
Unable to access jarfile test.jar
我可以通过指定完整路径来运行test.jar。但我想知道为什么CLASSPATH不起作用。我的理解是,它告诉java运行库在哪里找到jar文件。
答案 0 :(得分:0)
Jarfiles必须明确地在类路径上。为jarfile指定类路径目录是不够的。
请参阅Java命令行上的related Oracle docs:
使用此选项时,JAR文件是所有用户的来源 类和其他用户类路径设置将被忽略。
答案 1 :(得分:0)
尝试使用
java -jar D:\jarFolder\test.jar
如果您知道jar入口点的主要类名。你可以使用
set CLASSPATH="D:\jarFolder"
java yourpackage.yourEntryPoint
您可以使用zip程序了解jar文件的入口点,以提取jar文件并阅读 file entry point section of manifest.mf file。
使用-jar选项时,需要指定哪个jar。这样想吧。如果你不给jar名称,应该执行哪个jar java?您的班级路径中可能有10,20个可能是100个罐子。
但是如果你给出类名,那么java在jar中搜索并执行正确的名称。