2011-05-23 69 views
0

編譯Java對於windows我只是用一個批處理腳本來編譯我的程序:問題在CentOS 5.6

@echo off 
title Building... 
echo Building Server - please wait... 
echo --------------------------------------- 

set javac="C:\Program Files\java\jdk1.6.0_24\bin\javac.exe" 

set libs=bin; 

set dirs=src\server\*.java 
set dirs=%dirs% src\server\commands\*.java 
set dirs=%dirs% src\server\components\*.java 
set dirs=%dirs% src\server\item\*.java 
set dirs=%dirs% src\server\net\*.java 
set dirs=%dirs% src\server\randomevent\*.java 
set dirs=%dirs% src\server\minigames\*.java 
set dirs=%dirs% src\server\minigames\trawler\*.java 
set dirs=%dirs% src\server\minigames\trawler\game\*.java 
set dirs=%dirs% src\server\quests\*.java 
set dirs=%dirs% src\server\skills\runecrafting\*.java 
set dirs=%dirs% src\server\skills\slayer\*.java 
set dirs=%dirs% src\server\tasks\*.java 
set dirs=%dirs% src\server\tasks\net\*.java 
set dirs=%dirs% src\server\threading\*.java 

%javac% -classpath %libs% %dirs% -d bin 
echo --------------------------------------- 
title Buld complete. 
echo Build complete. 
pause 

一切編譯罰款。 所以我在我的項目移動到我的CentOS的VPS,並嘗試使用bash腳本

echo Building... 
echo Building Server - please wait... 
echo --------------------------------------- 

libs=bin 
dirs=src/server/*.java 
dirs=$dirs src/server/commands/*.java 
dirs=$dirs src/server/components/*.java 
dirs=$dirs src/server/item/*.java 
dirs=$dirs src/server/net/*.java 
dirs=$dirs src/server/randomevent/*.java 
dirs=$dirs src/server/minigames/*.java 
dirs=$dirs src/server/minigames/trawler/*.java 
dirs=$dirs src/server/minigames/trawler/game/*.java 
dirs=$dirs src/server/quests/*.java 
dirs=$dirs src/server/skills/runecrafting/*.java 
dirs=$dirs src/server/skills/slayer/*.java 
dirs=$dirs src/server/tasks/*.java 
dirs=$dirs src/server/tasks/net/*.java 
dirs=$dirs src/server/threading/*.java 

javac -classpath $libs $dirs -d bin 
echo --------------------------------------- 
title Buld complete. 
echo Build complete. 

編譯和我一定是做錯了什麼。我得到這些錯誤:

有人可以幫我弄清楚我做錯了什麼嗎?有語法錯誤嗎?

+5

我強烈建議你試用Apache Ant。這是爲了這樣的事情。 – vbence 2011-05-23 21:09:46

回答

1

您需要在所有分配的右側引用引號,例如,

 
dirs="$dirs src/server/commands/*.java" 

2

不知道爲什麼通配符沒有被擴展,但dirs =行是無效的語法;你需要引用右側。鑑於奇怪的錯誤信息,我會懷疑bash是否被用來執行腳本。你確定它是?

在任何情況下,oy。這是編譯你的代碼的一種瘋狂的方式。使用Antmake,他們會讓你的生活變得更容易。

+0

+1用於提示構建工具。 – 2011-05-23 21:17:15

+1

錯誤信息是因爲bash會讀取分配到空間,然後嘗試在空間後面執行所有操作,就好像它是一個命令 – frankc 2011-05-23 21:17:28

+0

但是它仍然會首先擴展通配符,就是這樣。我不知道爲什麼它不會。 – 2011-05-23 21:21:07