从启动脚本设置类路径不起作用
Setting classpath from start script does not work
我有一个 bash 脚本来启动我的应用程序。我的应用程序是一个 spring 应用程序,捆绑为 FAT Jar,具有以下清单条目。
Manifest-Version: 1.0
Implementation-Title: My App
Implementation-Version: 1.0-SNAPSHOT
Implementation-Build: 0aef5a1f96de18795c76b896e349c741d9
Implementation-Date: Sep 21, 2016 07:02:48 GMT
Created-By: 1.8.0_77 (Oracle Corporation)
Implementation-Vendor: App Team
Main-class: com.demo.ApplicationInitializer
我把它放在一个文件夹下 /Users/nn/apps/myapp/instance1
。此应用程序需要来自类路径的配置文件 configs.yml
,并且决定这应该在 JAR 文件之外。这就是为什么我创建了一个文件夹 /Users/nn/apps/myapp/shared
并将这个 configs.yml
放在它下面的原因。在我的启动脚本 (start.sh
) 中,我添加了以下代码来设置类路径:
JAVA_CLASSPATH="/Users/nn/apps/myapp/shared:/Users/nn/apps/myapp/instance1"
JAVA_CLASSPATH="$JAVA_CLASSPATH:/Users/nn/apps/myapp/shared/configs.yml"
export CLASSPATH=$JAVA_CLASSPATH
java <my_other_settings> -jar myapp-fatjar.jar
我得到异常 configs.yml
不在类路径中(我的应用程序中的一个 Spring bean 试图加载它抛出异常)。
我也试过明确地将 -classpath
传递给指向 $JAVA_CLASSPATH
的 java
命令。
我做错了什么?
您可以尝试以下 start.sh 脚本:
JAVA_CLASSPATH="/Users/nn/apps/myapp/shared:/Users/nn/apps/myapp/instance1"
JAVA_CLASSPATH="$JAVA_CLASSPATH:/Users/nn/apps/myapp/shared/configs.yml"
JAVA_CLASSPATH="$JAVA_CLASSPATH:myapp-fatjar.jar"
java -cp $JAVA_CLASSPATH com.demo.ApplicationInitializer
见
我有一个 bash 脚本来启动我的应用程序。我的应用程序是一个 spring 应用程序,捆绑为 FAT Jar,具有以下清单条目。
Manifest-Version: 1.0
Implementation-Title: My App
Implementation-Version: 1.0-SNAPSHOT
Implementation-Build: 0aef5a1f96de18795c76b896e349c741d9
Implementation-Date: Sep 21, 2016 07:02:48 GMT
Created-By: 1.8.0_77 (Oracle Corporation)
Implementation-Vendor: App Team
Main-class: com.demo.ApplicationInitializer
我把它放在一个文件夹下 /Users/nn/apps/myapp/instance1
。此应用程序需要来自类路径的配置文件 configs.yml
,并且决定这应该在 JAR 文件之外。这就是为什么我创建了一个文件夹 /Users/nn/apps/myapp/shared
并将这个 configs.yml
放在它下面的原因。在我的启动脚本 (start.sh
) 中,我添加了以下代码来设置类路径:
JAVA_CLASSPATH="/Users/nn/apps/myapp/shared:/Users/nn/apps/myapp/instance1"
JAVA_CLASSPATH="$JAVA_CLASSPATH:/Users/nn/apps/myapp/shared/configs.yml"
export CLASSPATH=$JAVA_CLASSPATH
java <my_other_settings> -jar myapp-fatjar.jar
我得到异常 configs.yml
不在类路径中(我的应用程序中的一个 Spring bean 试图加载它抛出异常)。
我也试过明确地将 -classpath
传递给指向 $JAVA_CLASSPATH
的 java
命令。
我做错了什么?
您可以尝试以下 start.sh 脚本:
JAVA_CLASSPATH="/Users/nn/apps/myapp/shared:/Users/nn/apps/myapp/instance1"
JAVA_CLASSPATH="$JAVA_CLASSPATH:/Users/nn/apps/myapp/shared/configs.yml"
JAVA_CLASSPATH="$JAVA_CLASSPATH:myapp-fatjar.jar"
java -cp $JAVA_CLASSPATH com.demo.ApplicationInitializer
见