Ich habe ein Bash-Skript, um meine Anwendung zu starten. Meine Anwendung ist eine Frühlingsanwendung, die als FAT Jar mit folgenden Manifest-Einträgen gebündelt ist.Das Festlegen des Klassenpfads von Startskript funktioniert nicht
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
Ich habe dies in einem Ordner /Users/nn/apps/myapp/instance1
. Diese Anwendung benötigt eine Konfigurationsdatei configs.yml
von Classpath und es wurde entschieden, dass dies außerhalb der JAR-Datei sein sollte. Dies ist der Grund, warum ich einen Ordner /Users/nn/apps/myapp/shared
erstellt habe und diesen configs.yml
darunter setzen. In meinem Startskript (start.sh
) Ich füge Code nach dem Classpath zu setzen:
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
ich Ausnahme erhalten, dass configs.yml
nicht in Classpath ist (ein Spring-Bean in meiner app versucht, diese zu laden, die Ausnahme auslöst).
Ich habe auch versucht, übergeben -classpath
zu java
Befehl, der auf $JAVA_CLASSPATH
zeigt.
Was mache ich falsch?
Sein interessant zu wissen, dass sowohl '-cp' und' -jar' nicht kombiniert werden können. Und genau das war es, was mir Probleme bereitet hat. – Niranjan