使用java代码调用exe程序 (包括参数传递)
来源:互联网 发布:交大软件工程硕士 在职 编辑:程序博客网 时间:2024/05/16 18:55
使用Java代码调用exe
1使用场景
我现在使用eclipse+tomcat的架构建立了web server, 在这个web project中我需要建立一个定时任务,在定时任务中执行本地的一个C#工程生成的exe。
2Java代码
public class MyTask extends TimerTask { public void run() { System.out.println("call at " + (new Date())); // TODO æ¤å¤„æ·»åŠ å…·ä½“ä»»åŠ¡ä»£ç try { String cmdStr1="D:/download/SvmGridParameterTraining/SvmGridParameterTraining/EasySvmTrain/bin/Debug/EasySvmTrain newtrain.txt newtest.txt"; Runtime.getRuntime().exec("cmd.exe /c start "+cmdStr1); }catch(Exception e){ e.printStackTrace(); } }}
getRuntime().exec()中的参数包括exe文件全路径和参数 (我后面的两个txt参数直接写在后面即可)
/c 的意思是执行之后关闭命令行。
3陷阱:exe工作路径
按以上代码执行后,发现程序并没有按预期执行。 经过测试发现 作为参数的newtrain.txt 和newtest.txt 为空。 所以我分析在程序的执行路径下并没有这两个文件。
在调用的C#程序中加入如下代码:
Headache 2014/8/29 13:28:11 Console.WriteLine("Environment.CurrentDirectory:" + Environment.CurrentDirectory); Console.WriteLine("Directory.GetCurrentDirectory():" + Directory.GetCurrentDirectory()); String input2 = Console.ReadLine();
打印出项目的工作目录,可以发现。在单独调用C#工程时,工作目录为C#的工程目录,而使用tomcat +eclipse 做定时任务时, 打印出的目录是tomcat的目录。
因为源程序需要使用的newtrain和newtest文件都在C#目录下, 所以通过java调用时传进去的newtrain 和 newtest这两个参数实际上是没什么意义的(tomcat下并没有这两个文件)
4解决方式
根据打印出的当前工作目录, 把参数文件放到相应的目录下。
0 0
- 使用java代码调用exe程序 (包括参数传递)
- javascript调用exe程序(windows)传递参数
- javascript调用exe程序(windows)传递参数
- Matlab程序调用外部exe(可执行文件)方法及参数传递
- 独立exe程序之间传值的方法传递com口 传递参数 调用的方法(Wince程序)
- 传递命令行参数调用exe
- C# 调用exe 传递参数
- VB EXE程序传递参数
- 使用java调用本地EXE程序
- Java 程序调用 exe
- Java调用exe程序
- 如何调用cmd.exe程序,并可以传递一些命令行参数
- 使用java调用本地exe程序和cmd程序
- Unity3D之打开Activity与调用JAVA代码传递参数
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)
- 题目1199:找位置
- POJ3080 Blue Jeans
- 优秀程序员必须知道的32个算法,提高你的开发效率
- 程序员如何走出自己的安逸环境
- 题目1121:首字母大写
- 使用java代码调用exe程序 (包括参数传递)
- 很简单的爬楼梯问题
- 1.javaScript(JS)常用函数之 appendChild 和removeChild
- 《深入理解LINUX内存管理》学习笔记
- python 连接oracle 报错 cx_Oracle.DatabaseErro
- MAC OS X 10.9 下 Nginx的安装笔记(为后续搞Nginx+Redis+Tomcat集群做准备)
- codeblocks缩进等设置
- 习题6-1 平衡的括号 UVa673
- H.264学习 之 步步为营,我的切身体会 [复制链接]