I'm trying to deploy a test java program on mesos cluster using marathon. I've created a tar ball with all required jars and config files. The tar also has a cmd.sh that launches the app. Cmd.sh snippet
chmod a+rx *.jar
java -ea -Dlog4j.configuration="file:./log4j.prod.properties" -cp my-app-0.1-SNAPSHOT.jar:lib/* package.name.main.class.name
This tar is provided as an URI. I can see in log file that tar is downloaded and unpacked correctly. But execution fails with error
I0331 23:00:35.135365 30558 exec.cpp:134] Version: 0.27.1
I0331 23:00:35.137852 30588 exec.cpp:208] Executor registered on slave 11aaafce-f12f-4aa8-9e5c-200b2a657225-S1
./cmd.sh: line 5: java: command not found
Any idea why its not finding java? I'm not using any custom container. Only parameters I've set are id, cpu, mem, instance, uri and cmd=cmd.sh
Is this the recommended way to run java apps? My java program is stateless(uses zookeeper for state) and I intend to run several instance of this app. Please feel free to suggest alternate ways of launching or deploying such an app.