Академический Документы
Профессиональный Документы
Культура Документы
Stack Overflow is a community of 7.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up
How to compile all java files in all subfolders on Unix, using javac?
java javac
marked as duplicate by Danubian Sailor, Matsemann, Adam Arold, Dmitry Pashkevich, Felipe Oriani Dec 16 '13 at 11:27
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
6 Answers
Use a build tool such as Ant or Maven. Both lets you manage dependencies in a much better
way than can be accomplished using e.g. the find UNIX tool. Both And and Maven also lets
you define custom tasks to be performed in addition to compilation. Maven furthermore comes
with conventions for managing external dependencies in remote repositories, as well as
conventions for running unit tests and features that support continuous integration.
Even if you just need to compile your source files once in a while, you'll probably find that
setting up a simple Ant build.xml file can be a big time saver in the end.
Finally, most of the popular IDE and code editor applications has some kind of integration with
Ant build scripts, so you can run all the Ant tasks from within the editor. NetBeans, Eclipse,
IDEA and more also has built-in support for Maven.
Read this first, if you're new to Ant. Below is the example build file from the link:
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
https://stackoverflow.com/questions/5194926/compiling-java-files-in-all-subfolders 9/21/2017
javac - Compiling java files in all subfolders? - Stack Overflow Page 2 of 4
Once you're familiar with Ant, you'll find it easier to move to Maven.
1 Shouldn't the right answer be: "you do it like this... but Ant/Maven will work out better for you"? Someone
who's actually trying to grasp how to use javac (what the question is aimed at) will not find an answer in this.
dmg_ Jun 25 '16 at 17:58
On Windows...
now execute.
On Linux....
http://forums.oracle.com/forums/thread.jspa?threadID=1518437&tstart=15
thanks. I get this error message though: javac: invalid flag: ./lucene/org/apache/lucene/.svn/prop-
base/LucenePackage.java.svn-base Patrick Mar 4 '11 at 14:28
oops, seems that file has a .java extension and you don't want to compile it, does it work with grep
--include=.java? did it still compile your other files? Orbit Mar 4 '11 at 14:32
for /r %a in (*.java) do (jikes.exe -d bin\ -cp jre6\lib\rt.jar;WEB-INF\lib\*.jar "%a") diyism Nov 13 '11 at 7:27
for /r %a in (*.java) do (java -jar ecj.jar -d bin\ -cp jre6\lib\rt.jar;WEB-INF\lib*.jar "%a") diyism Nov 13 '11 at
12:47
uhm, it doesn't work. Is maybe because find command works differently on mac ? (-name flag doesn't exist)
Patrick Mar 4 '11 at 14:27
Even if -name is supported, it won't work if a .java file exists in the current folder, since the shell will expand
the wildcard. Use quotes (aka find -name "*.java"). Axel Mar 4 '11 at 14:31
I modified the answer to add the quotes and the path to use. It should work on Mac OS X this time. And it
works on Debian without the quotes : $ find . -name *.java ---> ./test.java krtek Mar 4 '11 at 14:32
https://stackoverflow.com/questions/5194926/compiling-java-files-in-all-subfolders 9/21/2017
javac - Compiling java files in all subfolders? - Stack Overflow Page 3 of 4
Use an IDE, like Eclipse (all IDEs I know will happily compile multiple source
folders for you)
Another (less flexible) way, if you know how much folder levels there are:
Depending on your shell, you may have to set it to expanding non-matching patterns to
nothing, in bash with shopt -s nullglob . For example, I'm using the following shell function to
find text in my java files:
function jgrep ()
{
(
shopt -s nullglob
egrep --color=ALWAYS -n "$@" *.tex *.java */*.java */*/*.java */*/*/*.java
*/*/*/*/*.java */*/*/*/*/*.java
)
}
jgrep String
https://stackoverflow.com/questions/5194926/compiling-java-files-in-all-subfolders 9/21/2017
javac - Compiling java files in all subfolders? - Stack Overflow Page 4 of 4
https://stackoverflow.com/questions/5194926/compiling-java-files-in-all-subfolders 9/21/2017