指定Java CLASSPATH变量

时间:2014-11-18 15:08:13

标签: java jar classpath

我不熟悉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文件。

2 个答案:

答案 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中搜索并执行正确的名称。