2016-07-10 9 views
3

を使用してMavenプロジェクトでクラスファイルを実行している:SH - 私はシェルスクリプトを書いて、次のシェルスクリプトを使用してMavenプロジェクトにクラスファイルを実行するための小さなスクリプトを記述しようとしていたに新しいですシェルスクリプト

function cleanup() { 
    kill ${SERVER_PID} ${CLIENT_PID} 
    rm -f cp.txt 
} 

trap cleanup EXIT 

mvn test dependency:build-classpath -Dmdep.outputFile=cp.txt 
CLASSPATH=$(cat cp.txt):target/classes 
java -classpath ${CLASSPATH} com.practice.Server & 
SERVER_PID=$$ 

while ! nc localhost 1111 > /dev/null 2>&1 < /dev/null; do 
    echo "$(date) - waiting for server at localhost:1111..." 
    sleep 1 
done 

java -classpath ${CLASSPATH} com.practice.Client 
CLIENT_PID=$$ 
cleanup 
エラーで1111

は、しかし、私はローカルホストでサーバーを待って

を得続ける

Error: Could not find or load main class com.paractice.Server 

注:このshファイルはプロジェクトフォルダ内に存在します。つまり、srcおよびtargetフォルダと並行して存在します。

助けてください!

答えて

1

execプラグインを使用できます。

mvn test dependency:build-classpath -Dmdep.outputFile=cp.txt 
CLASSPATH=$(cat cp.txt):target/classes 
java -classpath ${CLASSPATH} com.practice.Server & 

を行うことができます:代わりの

mvn test exec:java -Dexec.mainClass=com.practice.Server 

これは、同期プログラムを実行します。

あなたはどちらかの終わりにアンパサンド(&)を追加

または

によって非同期で実行することができ、使用mvn exec:exec、ことを変更することができます。プラグインの

mvn test exec:exec -Dexec.async=true -Dexec.executable="java" -Dexec.args="-classpath %classpath com.practice.Server" 

詳しい説明が利用可能ですhttp://www.mojohaus.org/exec-maven-plugin/index.html

関連する問題