![](/img/trans.png)
[英]Manual setting CLASSPATH with -cp or -classpath does not work as expected
[英]Setting classpath from start script does not work
我有一個bash腳本來啟動我的應用程序。 我的應用程序是一個Spring應用程序,捆綁為FAT Jar,並帶有以下Manifest條目。
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
。 該應用程序需要來自classpath的配置文件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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.