【发布时间】:2015-09-02 17:43:36
【问题描述】:
嘿,我正在尝试构建和部署一个 Java 应用程序。
我的 buildAndDeploy.sh 文件如下:
#!/bin/bash
# CoreSystemsAccumulator build and deploy script
echo "Building and Deploying CoreSystemsAccumulator"
# Step 1 - do a git pull.
cd ..
git pull
# Step 2 - Set CLASSPATH.
export CLASSPATH=libs/*
# Step 3 - Compile all sources using javac.
find ./src -name *.java > sources_list.txt
javac -d bin -classpath "${CLASSPATH}" @sources_list.txt
rm -rf sources_list.txt
# Step 4 - Run the app.
cd /opt/repositories/CoreSystemsAccumulator/bin
java com.ra.mainn.StartAccumulator
它编译得很好,但是当它尝试运行应用程序时,我收到以下错误:
Error: Could not find or load main class com.ra.mainn.StartAccumulator
现在真正奇怪的是,当我尝试在没有脚本的情况下运行应用程序时,只需进入 bin 目录并运行以下命令,它就可以正常运行。
java com.ra.mainn.StartAccumulator
我正在使用 Java 8 和 Fedora。
任何想法都会很棒。 谢谢。
【问题讨论】:
-
如果你
export CLASSPATH=libs/*然后 cd 进入 bin 并运行java命令,它仍然有效吗? -
你的脚本也在运行
bin目录? -
哦,实际上,如果我这样做,那不起作用,为什么会这样?
-
我认为java应用程序的命令行是“java myApp.jar”,主类名在metainfo中找到。
-
您将
CLASSPATH设置为libs/*,其中不包括bin/目录。当当前目录是bin目录并且当前目录被静默添加到类路径时,它可能会起作用。
标签: java linux deployment build