java中Runtime.getRuntime().exec问题
importjava.io.*;publicclassFiles{publicstaticvoidmain(Strings[]){try{Runtime.getRunti...
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,打开了游戏窗口,可却出现错误报告,但这两个程序双击都是可以打开的啊。不过也确实有几个游戏程序可以运行。 展开
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,打开了游戏窗口,可却出现错误报告,但这两个程序双击都是可以打开的啊。不过也确实有几个游戏程序可以运行。 展开
4个回答
展开全部
首先说点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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.*;
public class Files {
public static void main(String s[]) {
try{
Runtime.getRuntime().exec("D:\\Games\\打砖块\\DXBall2.exe");
}catch(IOException e){
}
}
}
public class Files {
public static void main(String s[]) {
try{
Runtime.getRuntime().exec("D:\\Games\\打砖块\\DXBall2.exe");
}catch(IOException e){
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
……游戏程序应该也是没有问题的,你可以在catch里添加e.printStackTrace()看看什么问题。
建议你试试全英文路径。。
-----------------
这就不知道了。。我这里没有游戏也试不了,不过用来开QQ是没有问题的…………
建议你试试全英文路径。。
-----------------
这就不知道了。。我这里没有游戏也试不了,不过用来开QQ是没有问题的…………
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询