在CentOS 5.6上编译Java时出现问题

问题描述

| 对于Windows,我只是使用批处理脚本来编译程序:
@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.
我一定做错了。我得到这些错误
: command not founde 4:
: No such file or directory/server/commands/*.java
: No such file or directory/server/components/*.java
: No such file or directory/server/item/*.java
: No such file or directoryc/server/net/*.java
: No such file or directoryc/server/randomevent/*.java
: No such file or directoryc/server/minigames/*.java
: No such file or directoryc/server/minigames/trawler/*.java
: No such file or directoryc/server/minigames/trawler/game/*.java
: No such file or directoryc/server/quests/*.java
: No such file or directoryc/server/skills/runecrafting/*.java
: No such file or directoryc/server/skills/slayer/*.java
: No such file or directoryc/server/tasks/*.java
: No such file or directoryc/server/tasks/net/*.java
: No such file or directoryc/server/threading/*.java
: command not founde 21:
javac: invalid flag: src/server/*.java
有人可以帮我弄清楚我做错了什么吗?是否存在语法错误?     

解决方法

您需要在所有作业的右侧加上引号,例如
dirs=\"$dirs src/server/commands/*.java\"
    ,不知道为什么不扩展通配符,但是
dirs =
行不是有效的语法;您需要引用右侧。给定奇怪的错误消息,我想问是否使用ѭ5来执行脚本。你确定是吗? 无论如何,是的。这是一种疯狂的方式来编译您的代码。使用
Ant
make
,它们将使您的生活更加轻松。