2015-06-17 101 views
0

嘿所以我想構建和部署一個Java應用程序。奇怪的類未找到錯誤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。

任何想法都會很棒。 謝謝。

+0

如果你'export CLASSPATH = libs/*',然後cd到bin並運行'java'命令,它仍然有效嗎? – hexafraction

+0

你的腳本也在運行'bin'目錄? – Jens

+0

哦,其實沒有,如果我這樣做,這是爲什麼? – fulhamHead

回答

0

在改變目錄的命令(cd /opt/repositories/CoreSystemsAccumulator/bin)之後,您應該將當前目錄添加到classpath。

Probabably某事像以下:

export CLASSPATH=.:$CLASSPATH 
0

看來要覆蓋CLASSPATH。正確設置CLASSPATH以追加你的庫。防爆。

CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java-5.1.24-bin.jar 
export CLASSPATH 
+0

解釋「正確」 –