用于逐个运行其他Java程序的Java代码

用于逐个运行其他Java程序的Java代码,java,cmd,Java,Cmd,我有没有办法编写java程序来一个接一个地运行其他java程序。。。。我创建了一个bat文件cmd。。运行所有java程序。。但在CMD中。。。。第一个程序未完成,第二个程序开始运行。。这就是发生的事。。在完成第一个程序后,cmd中是否有任何方法可以转到第二个程序。如果第一个程序出错,则不要在此处运行所有其他关闭程序。。或者请告诉我如何用java程序实现这一点 我的bat文件看起来很薄 cd C:\ java program1 cd C:\ java program2 pause 请帮帮我!

我有没有办法编写java程序来一个接一个地运行其他java程序。。。。我创建了一个bat文件cmd。。运行所有java程序。。但在CMD中。。。。第一个程序未完成,第二个程序开始运行。。这就是发生的事。。在完成第一个程序后,cmd中是否有任何方法可以转到第二个程序。如果第一个程序出错,则不要在此处运行所有其他关闭程序。。或者请告诉我如何用java程序实现这一点

我的bat文件看起来很薄

cd C:\
java program1

cd C:\
java program2
pause

请帮帮我!!谢谢

这看起来更像是一个批处理问题,而不是java问题。尽管Java可以用于此目的,但它在管理流程方面并不特别方便。坚持批处理会更容易,特别是因为您已经有了一个几乎可以使用的批处理文件

你可以用

if ERRORLEVEL 1 exit
在批处理语句之后,在发生错误时停止执行。在java程序中,为了让batch清楚地知道发生了错误,必须使用System.exit1;退出程序或任何其他非零值。此退出代码是批量测试的errorlevel

编辑:

生成的批处理文件将类似于以下内容:

cd C:\
java program1
if ERRORLEVEL 1 exit

cd C:\
java program2
if ERRORLEVEL 1 exit

pause
试试这个

public static void main(String[] args) {
        Process p =  Runtime.getRuntime().exec("java your_class.class");
        p.waitFor();
        p = Runtime.getRuntime().exec("java seccond_class.class");
        p.waitFor();
    }
在exec方法中,您可以执行cmd命令

确定尝试此操作

cd C:\
start java program1

java program2

pause

您可以查看其他“程序”是否在类路径中,只需编写一个启动器,在命令行中获取主类名列表并运行它们。“main”方法只是另一个方法,所以使用class.forName方法加载每个类文件,内省以获得“main”方法并执行它,然后移动到下一个。我需要在bat文件中添加什么??如果错误级别1退出!!如何在完成第一个程序后逐个运行程序,而不是执行第二个程序。。请帮帮我!!它将一个接一个地执行??好的,批处理总是串行地执行命令,这意味着一个接一个地执行命令。添加操作确保在出现错误时退出。这对你们来说应该是非常简单的尝试。哦,好的,这一个现在正在工作。但在完成第一个程序后,你们可以去第二个,对吗????我知道,我在问一些愚蠢的问题。。从第一个程序创建文件,然后使用该文件创建第二个程序。。所以这就是为什么。。请告诉我。。完全完成第一个程序后,再运行第二个程序,对吗。。我需要写路径吗??或者只是类文件..或者它会一个接一个或者像bat文件一样执行??因为如果第一个程序没有完成,第二个程序启动了,那么它就不起作用了。。我想。。完成第一个程序后,比开始运行第二个程序??请帮帮我!!如果您的其他java程序不在类路径下,而您需要指定完整路径,则它将在您的类路径下运行此cmd。你需要一个接一个地运行每个程序,我已经用示例编辑了答案。其他目录中的程序呢??它将一个接一个地执行??不,它不会一个接一个地执行,它将打开一个新窗口并执行程序1…如果需要,可以在启动cmd后更改目录