public class transferExe {\x0d\x0a public static void main(String[] args) {\x0d\x0a openWinExe()\x0d\x0a openExe()\x0d\x0a }\x0d\x0a //烂前蔽用 Java 调用windows系统的exe文饥州件,
比如notepad,calc之类\x0d\x0a public static void openWinExe() {\x0d\x0a Runtime rn = Runtime.getRuntime()\x0d\x0a Process p = null\x0d\x0a try {\x0d\x0a String command = "notepad"\x0d\x0a p = rn.exec(command)\x0d\x0a } catch (Exception e) {\x0d\x0a System.out.println("Error win exec!")\x0d\x0a }\x0d\x0a }\x0d\x0a //调用悔宽其他的可执行文件,例如:自己制作的exe,或是 下载 安装的软件.\x0d\x0a public static void openExe() {\x0d\x0a Runtime rn = Runtime.getRuntime()\x0d\x0a Process p = null\x0d\x0a try {\x0d\x0a p = rn.exec("\"D:/QQ2010.exe\"")\x0d\x0a } catch (Exception e) {\x0d\x0a System.out.println("Error exec!")\x0d\x0a }\x0d\x0a }\x0d\x0a }最近用到在java中调用本地的一个
程序,梁如是windows中的exe格式的程序,毁做利用神奇的互联网找到了解决的方法,发现异常简单的几句代码就可以实现 见代码:[*]package com.java.test[*][*]public class OpenEXE {[*][*]/**[*]* @param args[*]*/[*]public static void main(String[] args) {[*][*]Runtime rt = Runtime.getRuntime()[*]Process p = null[*]try{[*]p =rt.exec([*]new String[]{""D:/Notepad2/Notepad2.exe "","d:/EntPartner_2.xml"})[*]System.out.println("成功打开软件和纤渣衡文件!比如调用exe程序"java -version":
String[] cmd = new String[] {"java", "-version"}
Process process = Runtime.getRuntime().exec(cmd)
BufferedReader r = new BufferedReader(new InputStreamReader(process.getErrorStream()))
String l = null
while((l = r.readLine()) != null) {
System.out.println(l)
}
Process有念明两个流可以读取外部程序的标准输出(就是运行结果啦),一个是盯高斗getInputStream,一个是getErrorStream。
如果要调用C或C++动态链接库中的函数的话凯磨,就要复杂一些,要用到JNI了。
评论列表(0条)