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

Ste*_*lla 2 java batch-file

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

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

请让我知道要在java和批处理文件中编写的代码和语法.

提前致谢

San*_*osh 7

这是一种方法:

在Java代码中:

在程序结束时放这一行

System.exit(789);
Run Code Online (Sandbox Code Playgroud)

以下789是您将返回批处理文件的值.

在批处理文件中:

@echo off
java Test %1
set exitcode=%ERRORLEVEL%
echo %exitcode%
Run Code Online (Sandbox Code Playgroud)

这里

java Test %1是通常的java执行,带有从批处理文件传递的参数,其中%1将映射到从命令提示符传递给批处理文件的第一个参数(明智的是你可能有%2等 ... 查看这篇文章).

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

}
Run Code Online (Sandbox Code Playgroud)

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

批处理文件:

Example.bat

@echo off
java Example %1 %2
set exitcode=%ERRORLEVEL%
echo %exitcode%
Run Code Online (Sandbox Code Playgroud)

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

Example 111 222
Run Code Online (Sandbox Code Playgroud)

这将打印这两个数字的添加