0

我有一个包含几个 java 文件的目录树。例子:

top
 |-- src1
 |    |--- folder A
 |    |--- folder B
 |-- src2
 |    |--- folder A
 |    |--- folder B
...

我想编译这些文件夹中的所有文件,并将编译后的文件移动到相应的文件夹中folder A-binfolder B-bin相应的src文件夹中。我已经读过我可以使用该xargs实用程序执行此操作,但我无法通过手动输入做出正面或反面。

有人可以指点我吗?

4

2 回答 2

1

你有义务使用 xargs 来编译这些吗?

为什么不看看 java Makefiles?在构建项目时,它们将使您的生活更轻松。

另外,还有一个建议,我建议您研究一下Apache Maven。易于使用,并且当您的 java 项目及时变大时非常少。这是Maven 的快速指南。

基本生成文件:

JC=javac
JR=java

build: ref.java
        $(JC) ref.java

run: ref.class
        $(JR) ref

clean:
        rm -f *.class

另一个例子:(取自上面的指南)

JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
        $(JC) $(JFLAGS) $*.java

CLASSES = \
        Foo.java \
        Blah.java \
        Library.java \
        Main.java 

default: classes

classes: $(CLASSES:.java=.class)

clean:
        $(RM) *.class 
于 2011-10-11T15:53:17.130 回答
0

如果您想坚持使用 bash + javac,另一种选择是使用 find 来识别 .java 文件,将结果存储在变量中,然后检查变量是否不为空。

SRC=`find src -name "*.java"`
if [ ! -z $SRC ]; then
    javac -classpath $CLASSPATH -d obj $SRC
    # stop if compilation fails
    if [ $? != 0 ]; then exit; fi
fi
于 2014-04-25T18:59:11.800 回答