JAVA 是怎样加载外部程序 *.exe try{Runtime.getRuntime.exec("c:\\ting.exe");}catch(..){}我用过了没有错误提示但是程序TING.EXE没有运行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的方法是没有错,看看是不是什么别的东西出错。这是个比较全面的介绍,有兴趣你可以看看http://www.rgagnon.com/javadetails/java-0014.html Java 使用JNI来调用外部程序吧 , 至于怎么掉的就不知道。 直接运行那个ting.exe程序,看看有无反映或打开任务管理器,看看有无ting这个进程 try { Runtime.getRuntime().exec("notepad"); } catch (IOException e) { e.printStackTrace(); } 是可以的,难道是你的getRuntime后面没加括号,或者没写e.printStackTrace();有错误没打印出来,再或者ting.exe是没有界面的,按楼上说的方法看看任务管理器有没有。 try { Runtime.getRuntime().exec("E:\\Program Files\\TTPlayer\\TTPlayer.exe"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }可以打开千千静听,楼主检查下路径和任务管理器吧。 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public class CmdTest { private static final long serialVersionUID = -2650474785662737262L; public static void main(String[] args) throws Exception { Runtime runtime = Runtime.getRuntime(); Process p = runtime.exec("c:\\test.bat"); DealStream errStream = new DealStream(p.getErrorStream(),"Err"); DealStream outStream = new DealStream(p.getInputStream(),"Out"); new Thread(errStream).start(); new Thread(outStream).start(); int exitValue = p.waitFor(); System.out.println("exitValue -- > " + exitValue); }}class DealStream implements Runnable{ private InputStream is; private String type; public DealStream(InputStream is,String type){ this.is = is; this.type = type; } public void run(){ try{ InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String temp = null; while((temp = br.readLine()) != null){ System.out.println(type + "-->" + temp + "\n"); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ is.close(); }catch(Exception ex){ ex.printStackTrace(); } } }} 晕 你自己程序getRuntime()没加括号哦.... Runtime.getRuntime().exec是可以的 使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。 Process process = Runtime.getRuntime().exec(".\\p.exe"); process.waitfor(); Process process = Runtime.getRuntime().exec(".\\p.exe");getRuntime后面你没加括号,或者你的那个ting.exe程序有问题,或者那个程序已经运行,可在任务管理器 -》进程中查找或者ting.exe没有界面 jdk没有安装成功 多线程的问题? 多语言资源切换 关于void数据类型 Exception in thread "main" java.lang.NoSuchMethodError: main 用installanywhere打包java生成的exe的问题 怎么没人讨论concurrent programming啊 java中如何将字符型的数字转换成整型数字 如何编译执行? 如何将一个字符串数组随机分配为两组数组 请教java使用编码问题 关于批处理的问题
http://www.rgagnon.com/javadetails/java-0014.html
或
打开任务管理器,看看有无ting这个进程
Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
e.printStackTrace();
}
是可以的,难道是你的getRuntime后面没加括号,或者没写e.printStackTrace();有错误没打印出来,再或者ting.exe是没有界面的,按楼上说的方法看看任务管理器有没有。
Runtime.getRuntime().exec("E:\\Program Files\\TTPlayer\\TTPlayer.exe");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}可以打开千千静听,楼主检查下路径和任务管理器吧。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;public class CmdTest { private static final long serialVersionUID = -2650474785662737262L; public static void main(String[] args) throws Exception {
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("c:\\test.bat");
DealStream errStream = new DealStream(p.getErrorStream(),"Err");
DealStream outStream = new DealStream(p.getInputStream(),"Out");
new Thread(errStream).start();
new Thread(outStream).start();
int exitValue = p.waitFor();
System.out.println("exitValue -- > " + exitValue);
}}
class DealStream implements Runnable{
private InputStream is;
private String type; public DealStream(InputStream is,String type){
this.is = is;
this.type = type;
} public void run(){
try{
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String temp = null;
while((temp = br.readLine()) != null){
System.out.println(type + "-->" + temp + "\n");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
is.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
是可以的
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor();
getRuntime后面你没加括号,
或者你的那个ting.exe程序有问题,
或者那个程序已经运行,可在任务管理器 -》进程中查找
或者ting.exe没有界面