繁体   English   中英

如何在Linux中设置CLASSPATH以让Java查找jar文件?

[英]How to set CLASSPATH in Linux to let java find jar file?

在Linux下,我尝试如下运行jar文件:

java -jar plantuml.jar -testdot

同时将CLASSPATH设置为以下任何一项(文件位于/home/user/plantuml.jar ):

export CLASSPATH=/home/user
export CLASSPATH=/home/user/
export CLASSPATH=/home/user/plantuml.jar

无论哪种情况,无论我如何定义CLASSPATHjava命令都将给出错误Unable to access jarfile plantuml.jar 我在这里做错了什么?

您必须在参数-jar之后提供完整路径。 因此,对于您的示例,您必须致电

java -jar /home/user/plantuml.jar -testdot

仅评估$CLASSPATH以查找其他文件(类/资源),而不查找命令行中定义的jar文件。

export CLASSPATH="/path/to/class_or_jar1":"/path/to/class_or_jar2":"${CLASSPATH}" 

当您通过名称引用类时,可使用类路径查找类。 本质上,这是路径列表(目录和jar / zip文件),当使用诸如ClassLoader.getResourceAsStream()方法时,JVM需要在其中查找类或其他资源。

命令行上传递给-jar选项的值是JAR文件的文件路径。

因此,如果仅按名称引用jar文件,它将找不到jar文件。 CLASSPATH中的JAR文件路径应该是“包含”其他资源的路径元素。

您需要在这里做的是

  1. 尝试执行jar时,提供jar文件的完整路径
  2. 将classpath设置为jar文件的路径,然后运行java命令,给出要执行的主类的名称。

也许您缺少主类的名称或罐子的路径。 您是否尝试过执行它:

java -jar full_path/plantuml.jar package.YourClass -testdot

您的程序是否取决于其他课程? 如果是,则可能要添加-cp参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM