2016-09-21 5 views
0

У меня есть сценарий bash для запуска моего приложения. Мое приложение - это весеннее приложение в виде FAT Jar со следующими записями манифеста.Настройка класса path из стартового скрипта не работает

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 из класса pathpath, и было решено, что это должно быть вне файла 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 не в пути к классам (родник боб в моем приложении пытается загрузить это, которое бросает исключение).

Я также пробовал явно пропустить -classpath в команду java, указывая на $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

 Смежные вопросы

  • Нет связанных вопросов^_^