【问题标题】:Run a jar using a shell file and specify classpath and properties file path使用 shell 文件运行 jar 并指定类路径和属性文件路径
【发布时间】:2014-11-13 22:12:57
【问题描述】:

我已经编译了一个 Spring Maven 项目 JAR。我的依赖项都在一个标有 lib 的目录中。如何在指定 JAR 时执行它应该使用 LIB/* 作为类路径,并且还使用 log4j.xml 和一个名为 marker.properties 的属性文件。我的marker.sh

LIB=$INSTALL_PATH/lib
echo "$LIB"  # outputs usr/local/app/lib
export CLASSPATH=$(JARS=("$LIB"/*.jar); IFS=:; echo "${JARS[*]}")
PARM="-Dlog4j.configuration=/usr/local/Marker/log4j.xml"
java $PARM -jar /usr/local/Marker/marker-1.0.jar

但是在运行它时我得到以下错误,因为它无法在类路径中找到 jars

Exception in thread "main"java.lang.NoClassDefFoundError: org/springframework/context/ConfigurableApplicationContext                   at java.lang.Class.getDeclaredMethods0(Native method)

但是,这个命令能够从类路径加载 jar,但我无法添加属性文件

java -cp /usr/local/Marker/marker-1.0.jar:"$LIB"/* com.package.Marker

【问题讨论】:

    标签: java spring shell maven jar


    【解决方案1】:

    java -cp /usr/local/Marker/marker-1.0.jar:"$LIB"/* com.package.Marker 工作得很好。我需要在放置 jar 的文件夹中添加 .properties 文件和 log4j.xml

    【讨论】:

      【解决方案2】:

      您可以使用-classpath(或-cp)标志指定类路径;例如:

      ~$ java -jar package.jar -classpath /path/to/classpath/*

      有关详细信息,请参阅以下documentation

      【讨论】:

        猜你喜欢
        • 2013-08-27
        • 2013-12-17
        • 2016-03-21
        • 2010-12-02
        • 2014-08-31
        • 2018-01-03
        • 1970-01-01
        相关资源
        最近更新 更多