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

用于编译和执行Java程序的Java代码,java,Java,我想一个接一个地编译和执行一组java程序 请给我一些关于如何执行任务的示例程序来帮助我 请建议……尝试使用 老师应该回答你的问题 HelloWorld应用程序可以找到当我必须这样做时,我创建了一个运行的perl脚本。在脚本中,我使用系统调用一个接一个地执行java程序。我还可以在程序之间更改目录。使用ApacheAnt或maven之类的工具。您不能在main方法中调用其他程序的main方法吗? 例如: 输出将是 ClassA main() Called ClassB main() Called

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

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

请建议……

尝试使用

老师应该回答你的问题


HelloWorld应用程序可以找到

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

使用ApacheAnt或maven之类的工具。

您不能在main方法中调用其他程序的main方法吗? 例如:

输出将是

ClassA main() Called
ClassB main() Called
Runtime.getRuntime.execjavac.exe

传递要编译的.java文件名

Runtime.getRuntime.execjava.exe


传递要执行的类名。

您还可以通过编程方式使用java编译器API


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

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

见例。 或者您可以使用

例如,如果目录src中有两个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>

要在系统中安装ant或

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

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

ant的优点是它也是用java编写的,所以您真的不需要做任何其他事情。ant的文档非常好,有很多例子,值得一读


我认为这是不值得的,特别是如果您是初学者,开始使用奇怪的运行时结构或直接修补javac,除非您有大量的可用时间,而我们通常没有:。

最好使用脚本语言bash或perl或。。。对于这个任务,我只想用Java来完成……对不起,你重复说你是Java的新手,你还想写一个Java程序来编译和运行其他Java程序?从编写Hello Worlds开始了解该语言,然后再学习如何执行命令行工具并将其应用到编译和运行自己的程序中,这不是更好吗?有这样的用例吗?为什么你认为你需要这样的东西?如何使用蚂蚁。。。我是Java的初学者。。我尝试下载Ant,但它对我不起作用。@我建议你提出一个问题,如何为绝对0或类似的东西运行Ant,使用Ant构建和运行一组文件非常容易,一般来说应该可以工作。我不确定您的需求和场景。试一试,它非常简单。它确实假设其他Java文件已经编译过。没错。但是,如果您拥有所有程序的源代码,那么您可以在使用Ant编译程序时编译它们,如果您不知道如何使用Ant,则可以使用简单的批处理文件编译它们?“现在全世界都是Windows?”asveikau就是一个例子。我几乎添加了一个注释,确切的文件名和路径是必要的,但我想大多数人会自己收集这些信息。显然,我错了。
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>
$ 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