2016-09-21 54 views
0

我有一個bash腳本來啓動我的應用程序。我的應用程序是一個包含以下清單條目的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。這個應用程序需要一個來自classpath的配置文件configs.yml,並且它決定這應該在JAR文件之外。這就是爲什麼我創建了一個文件夾/Users/nn/apps/myapp/shared並把它放在它下面的原因。在我的啓動腳本(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試圖加載這個會拋出異常)。

我也嘗試明確地通過-classpathjava命令指向$JAVA_CLASSPATH

我在做什麼錯?

回答

1

你可以嘗試以下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

+0

東西能吸引知道,無論'-cp'和'-jar'不能合併。而這正是我所面臨的問題。 – Niranjan