我必须使用批处理脚本执行java代码,其中java代码必须获取从.bat文件生成的变量值并执行java代码,然后将另一个变量值返回给.bat。
比方说,exec.bat文件我得到一个值" 456" .this" 456"必须被发送到java文件,执行后我们得到另一个值" 789"我想要这个" 789"返回exe.bat。
请告诉我在java和批处理文件中编写的代码和语法。
先谢谢
答案 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
这将打印添加这两个数字