使用shell文件运行jar并指定classpath和properties文件路径

时间:2014-11-13 22:12:58

标签: java spring shell maven jar

我编写了一个Spring Maven项目JAR。我的依赖项都在一个标记为lib的目录中。如何在指定JAR时执行我的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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

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

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