2

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

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

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

提前致谢

4

1 回答 1

7

这是一种方法:

在 Java 代码中:

在程序的最后放这一行

System.exit(789);

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

在批处理文件中:

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

这里

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

}

编译这个文件,生成一个类文件Example.class

批处理文件:

例子.bat

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

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

Example 111 222

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

于 2012-08-30T07:04:17.910 回答