簡體   English   中英

從啟動腳本設置類路徑不起作用

[英]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

參見https://stackoverflow.com/a/15930980/4473044

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM