作者jinn (阿昌)
看板java
标题[问题] 怎麽用java来开启外部的游戏?
时间Wed Mar 24 18:11:50 2010
请问怎麽用Java启动世纪帝国的游戏?因为我的方法有时候会显示错误讯息。
我的做法是这样的:
测试过如果用bat档这样写可以成功开启游戏:
cd "C:\Program Files\Age of Empires II\Age of Empires II\age2_x1"
start AGE2_X1.EXE
因为不知道Java呼叫exec时要怎麽执行「cd xxx」的命令,所以把命令改成
「
cmd /c "cd 路径&&start AGE2_X1.EXE"」。
所以我的程式方法如下,也就是程式按下「开启游戏」的JButton後,就会呼叫下面的方
法↓
//开启游戏
public void startGame(){
try{
String cmd ="cmd /c \"cd C:\\Program Files\\Microsoft Games\\Age of
Empires II\\Age of Empires II\\age2_x1&&start AGE2_X1.EXE\"";
Runtime.getRuntime().exec(cmd);
}catch(Exception e){textarea.append("\n开始游戏时发生错误!\n"+e);}
}
每次游戏都可以成功执行,但有时候会出现错误讯息,有时候不会,为什麽会这样呢?
下面是显示的错误讯息(第一个#字也是错误讯息的一部分):
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d0c6fab, pid=912, tid=3904
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode, sharing)
# Problematic frame:
# C [awt.dll+0x16fab]
#
# An error report file with more information is saved as hs_err_pid912.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
请问有人知道这是什麽意思吗?为什麽会发生错误啊?
还是有人知道比较正确和安全执行游戏的方法应该怎麽写(或修正)吗@@?
谢谢大家=v=
--
※ 发信站: 批批踢实业坊(ppt.cc)
◆ From: 361.24.253.7
※ 编辑: jinn 来自: 163.24.253.7 (03/24 18:20)
1F:→ tkcn:try google: "EXCEPTION_ACCESS_VIOLATION" 03/24 18:26
2F:→ jinn:我可不可以不要问为什麽了,改问要怎麽解决?=.=或怎样开游戏 03/24 19:01
3F:→ jinn:而不发生错误。 谢谢=v= 03/24 19:03
4F:→ tkcn:重装最新版本的 JDK 试试 03/24 19:16
5F:→ jinn:谢谢tkcn大,所以只要安装最新版就好罗,程式码没错的意思罗XD 03/24 21:38