tags:

views:

731

answers:

3

here is my directory structure.

/user/a /user/b /user/b

inside folder a,b,c there is a file person.java (it is the Same file, just a one line modification.

now, on my shell, im on my /user/ directory and i try to do

   javac */person.java

the shell returns the following error,

person.java:14: duplicate class: person

Is there anything to resolve this?

+5  A: 

I think the problem here might be, that javac tries to compile everything in one go, which naturally results in duplicated class definitions.

A simple way to resolve this would be

find . -name '*.java' -exec javac {} \;

Edit:

Or to be more precise find . -name 'person.java' -maxdepth 2 -exec javac {} \;

Horst Gutmann
Here you compile all the file ending in .java, not only the person.java files. Also you don't restrict to one level of subdirectory.
PierreBdR
+1  A: 

I would go for the small shell script:

for f in */person.java; do
  javac $file
done

First line find all the files person.java in a sub-directory, second line compile the file.

PierreBdR
in a shell, is there a well to type the above for loop "in" the console,so i dont have to create a separate .sh file?
freshWoWer
Yes, just type it as you see it here, or optionally put it all on one line: for f in */person.java; do javac $file; done
ephemient
A: 

Thanks everyone!!!

freshWoWer