![](/img/trans.png)
[英]How to include a jar file in classpath and run another jar in linux
[英]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
无论哪种情况,无论我如何定义CLASSPATH
, java
命令都将给出错误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文件路径应该是“包含”其他资源的路径元素。
您需要在这里做的是
也许您缺少主类的名称或罐子的路径。 您是否尝试过执行它:
java -jar full_path/plantuml.jar package.YourClass -testdot
您的程序是否取决于其他课程? 如果是,则可能要添加-cp参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.