用于编译和执行Java程序的Java代码

时间:2010-08-03 18:59:55

标签: java

我想一个接一个地编译和执行一组java程序。

请给我一些关于如何执行任务的示例程序来帮助我。

请告知......

9 个答案:

答案 0 :(得分:4)

尝试使用Ant

documentation应该回答你的问题。

可以找到HelloWorld应用程序here

答案 1 :(得分:3)

你不能调用main方法中其他程序的main()方法吗? 例如:

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); 
    } 
}

输出

ClassA main() Called
ClassB main() Called

答案 2 :(得分:2)

您也可以通过编程方式使用java编译器API。 http://download-llnw.oracle.com/javase/6/docs/api/javax/tools/package-summary.html

必要的工具jar隐藏在JDK目录中。

答案 3 :(得分:1)

当我必须这样做时,我创建了一个运行的perl脚本。在脚本中,我使用系统调用来执行java程序(一个接一个)。我还能够在程序之间更改目录。

答案 4 :(得分:1)

使用apache ant(http://ant.apache.org)或maven(http://maven.apache.org

之类的东西

答案 5 :(得分:0)

Runtime.getRuntime().exec("javac.exe");

传递.java文件名进行编译。

Runtime.getRuntime().exec("java.exe");

传递类名以执行。

答案 6 :(得分:0)

为什么不使用NetBeans或Eclipse?但是一旦熟悉了这些工具,尝试用'javac'编译源代码并从命令行用'java'执行类

参见例如http://java.sun.com/developer/onlineTraining/tools/netbeans_part1/http://download.oracle.com/javase/tutorial/getStarted/cupojava/netbeans.html

答案 7 :(得分:0)

您可以使用ant

例如,如果目录src

中有两个java文件
src/Hello.java
src/Hola.java

使用此构建文件将编译并运行它们:

<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>

将内容保存在build.xml中,然后输入antant 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

在系统installing antthis

中安装ant

答案 8 :(得分:0)

所以基本上你需要的是一个构建系统,类似于通用编程的make和MAKEFILE组合。构建系统通常是一个解析文件的程序,该程序描述构建系统生成可执行文件需要执行的操作。但是像往常一样,可能会发生更多的事情(您可以执行编译的文件,生成文档等)。

因此,在OscarRyz的上述示例中,ant项目文件定义了文件所在的源目录,并在编译后运行该目录中的文件。 javac 标记和 java 标记。

关于ant的好处是它也是用java编写的,所以你真的不需要做任何其他事情。蚂蚁的文档非常好,有一些例子,值得一读。

我认为这不值得,特别是如果你是初学者开始使用奇怪的运行时结构或直接修改javac(除非你有大量的时间可用,我们通常不会这样做:)。 / p>