【问题标题】:How to run executable jar file with multiple external libraries in linux如何在linux中运行带有多个外部库的可执行jar文件
【发布时间】:2018-11-23 06:15:09
【问题描述】:

我一直在尝试运行一个可执行 jar,但不知何故它返回了一个错误,即我的类不存在。我尝试以不同的方式搜索网络来运行它,到目前为止我已经尝试了以下方法:

java -cp Unirest.jar:lib/*
java -cp Unirest.jar:/home/appstemp/phuzca/lib/
java -cp Unirest.jar;/home/appstemp/phuzca/lib/*; MainMethod
javac -cp '.:/home/appstemp/phuzca/lib/*.jar' Unirest.jar
javac -cp '.:/home/appstemp/phuzca/lib/*.jar' Unirest
java -cp "Unirest.jar;lib/*" com.unirest.request.MainMethod.java
java -cp "Unirest.jar;lib/*" com.unirest.request.MainMethod
java -cp .:lib/* com.unirest.request.MainMethod
java -classpath lib/*:. com.unirest.request.MainMethod
java -cp "/lib/*:" Unirest.jar
java -cp "/home/appstemp/phuzca/lib/*:" Unirest.jar
java -classpath "/home/appstemp/phuzca/lib/*:." com.unirest.request.MainMethod
java -cp "Unirest.jar;lib/*" com.unirest.request.MainMethod

但它们都不起作用。任何帮助将不胜感激

【问题讨论】:

  • java -jar Unirest.jar你试过这个吗?
  • 是的,我做到了。如果我这样做,我将无法调用我的 jar 的外部库
  • 你到底想用这个可执行jar和多个外部库实现什么。?你能解释更多以便我们提供帮助吗?
  • 您可以将外部库导出到 $CLASSPATH 并将可执行 jar 调用为 java -cp mainclassname
  • 你最后一次尝试是最接近的。在 Windows 以外的操作系统中,始终使用 : 作为路径条目分隔符。试试java -cp "Unirest.jar:lib/*" com.unirest.request.MainMethod

标签: java linux shell


【解决方案1】:

只是发布给我的答案,所以每个人都可以看到。谢谢@VGR:

java -cp "Unirest.jar:lib/*" com.unirest.request.MainMethod

用冒号(:)代替分号(;)

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多