如何从Batch脚本执行Java代码?

时间:2012-08-30 06:48:46

标签: java batch-file

我必须使用批处理脚本执行java代码,其中java代码必须获取从.bat文件生成的变量值并执行java代码,然后将另一个变量值返回给.bat。

比方说,exec.bat文件我得到一个值" 456" .this" 456"必须被发送到java文件,执行后我们得到另一个值" 789"我想要这个" 789"返回exe.bat。

请告诉我在java和批处理文件中编写的代码和语法。

先谢谢

1 个答案:

答案 0 :(得分:7)

这是一种方法:

在Java代码中:

在程序结束时加上这一行

System.exit(789);

此处789是您将返回批处理文件的值。

在批处理文件中:

@echo off
java Test %1
set exitcode=%ERRORLEVEL%
echo %exitcode%

下面

java Test %1是通常的java执行,其参数从批处理文件传递,其中%1将映射到从命令提示符传递给批处理文件的第一个参数(就像你可能有%2等 em> ... Check this article)。

ERRORLEVEL是用于存储从java返回的值的标准批处理变量

假设批处理文件名为Test.bat,则可以从命令提示符批处理

运行它

Test 456

编辑:添加两个数字的示例

Example.java

public class Example extends TestBase<String>
{
     public static void  main(String[] arg){
         int result = Integer.parseInt(arg[0].trim()) ;+Integer.parseInt(arg[1].trim())
          System.exit(result);
     }

}

编译此文件并生成类文件Example.class

批处理文件:

Example.bat

@echo off
java Example %1 %2
set exitcode=%ERRORLEVEL%
echo %exitcode%

将此批处理文件和Example.class放在一个文件夹中。从该文件夹打开命令提示符并按如下方式运行

Example 111 222

这将打印添加这两个数字