以下是关于Runtime.getRuntime().exec的问题,麻烦大神帮忙看看~

import java.io.*;
public class Files {
public static void main(String s[]) {
try{
Runtime.getRuntime().exec("cmd /c start D:\\Games\\打砖块\\DXBall2.exe");
}catch(IOException e){
}
}
}
打开一般程序都没什么问题,可就是无法打开游戏程序,为什么?
运行这个程序时弹出一个Fatal Error框,上面有如下信息:
Could not find needed graphics!

运行下面这个程序时D:\\Games\\雷电\\ds.exe,打开了游戏窗口,可却出现错误报告,但这两个程序双击都是可以打开的啊。不过也确实有几个游戏程序可以运行。

小唯快跑啊
浏览 441回答 3
3回答

慕哥6287543

首先说点Runtime类吧,他是一个与JVM运行时环境有关的类,这个类是Singleton的。我说几个自己觉得重要的地方。1、Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法。2、Runtime上其他大部分的方法都是实例方法,也就是说每次进行运行时调用时都要用到getRuntime方法。3、 Runtime中的exit方法是退出当前JVM的方法,估计也是唯一的一个吧,因为我看到System类中的exit实际上也是通过调用 Runtime.exit()来退出JVM的,这里说明一下Java对Runtime返回值的一般规则(后边也提到了),0代表正常退出,非0代表异常中 止,这只是Java的规则,在各个操作系统中总会发生一些小的混淆。4、Runtime.addShutdownHook()方法可以注册一个hook在JVM执行shutdown的过程中,方法的参数只要是一个初始化过但是没有执行的Thread实例就可以。(注意,Java中的Thread都是执行过了就不值钱的哦)5、 说到addShutdownHook这个方法就要说一下JVM运行环境是在什么情况下shutdown或者abort的。文档上是这样写的,当最后一个非 精灵进程退出或者收到了一个用户中断信号、用户登出、系统shutdown、Runtime的exit方法被调用时JVM会启动shutdown的过程, 在这个过程开始后,他会并行启动所有登记的shutdown hook(注意是并行启动,这就需要线程安全和防止死锁)。当shutdown过程启动后,只有通过调用halt方法才能中止shutdown的过程并退 出JVM。

MMMHUHU

用这个有时就是会出现毛病。可能还得再加些参数。你用Desktop类。打开一个文件Desktop d=Desktop.getDesktop();d.open("D:\\Games\\打砖块\\DXBall2.exe");这个方法肯定可以打开。它是利用windows的默认打开方式的

慕森王

import java.io.*;public class Files {public static void main(String s[]) {try{Runtime.getRuntime().exec("D:\\Games\\打砖块\\DXBall2.exe");}catch(IOException e){}}}
打开App,查看更多内容
随时随地看视频慕课网APP