I want to compile and execute a set of java programs one after the other.
Please help me out by giving me some example program on how to carry out the task.
Please advise...
I want to compile and execute a set of java programs one after the other.
Please help me out by giving me some example program on how to carry out the task.
Please advise...
Can't you call the main() method of the other programs inside your main method? Example:
ClassB { public static void main(String[] args) { System.out.println("ClassB main() Called"); } } ClassA { public static void main(String[] args) { System.out.println("ClassA main() Called"); ClassB.main(args); } } The output will be
ClassA main() Called ClassB main() Called You can also use the java compiler API programmatically. http://download-llnw.oracle.com/javase/6/docs/api/javax/tools/package-summary.html
The necessary tools jars are hidden away in the JDK directory.
Runtime.getRuntime().exec("javac.exe");
Pass the .java filename(s) to compile.
Runtime.getRuntime().exec("java.exe");
Pass the class name to execute.
Why not using NetBeans or Eclipse? But once you got familiar with those tools, try compiling the sourcecode with 'javac' and executing the classes with 'java' from command line
See e.g. http://java.sun.com/developer/onlineTraining/tools/netbeans_part1/ or http://download.oracle.com/javase/tutorial/getStarted/cupojava/netbeans.html
You could use ant
For instance, if you have two java files in the directory src
src/Hello.java src/Hola.java Using this build file will compile and run them:
<project default="compile"> <!-- compile everything inside the "src" directory --> <target name="compile"> <javac srcdir="src" destdir="classes" /> </target> <!-- run the program named "Hello" followed by the program "Hola" --> <target name="run" depends="compile"> <java classname="Hello" classpath="classes" /> <java classname="Hello" classpath="classes" /> </target> </project> Save the content in a build.xml and then type ant or ant run
$ ant run Buildfile: build.xml compile: [javac] Compiling 2 source files to /Users/oscarryz/Oscar/code/languages/Java/useAnt/classes run: [java] Hello [java] Hello BUILD SUCCESSFUL Total time: 0 seconds To install ant in your system installing ant or this
So basically what you need is a build system, similar to the make and MAKEFILE combination for generic programming. A build system is a usually a program that parses the file which describes what actions the build system needs to make to produce executable. But as usual there can be significantly more things happening (you can execute the compiled files, generate documentation etc.).
So in the example above by OscarRyz, the ant project file defines the source directory where the files are and after compilation runs the files in that directory. The javac tag and java tag.
Good thing about ant is that it's also written in java so you really don't need to do anything else. And the documentation for ant has been pretty good, with examples, worth definitely reading.
I don't think it would be worthwhile, especially if you are beginner to start using weird Runtime constructs or tinkering with javac directly (unless you have significant amount of time available, which we usually don't :)).