A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© paozhuanyinyu 中级黑马   /  2014-8-4 13:00  /  1009 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 paozhuanyinyu 于 2014-8-5 19:09 编辑

按照视频上讲的将扫雷可执行文件拷贝在C盘下,但是打开失败,出现乱码,换成C:\\Program Files\\Microsoft Games\\Minesweepe 依然失败。程序代码如下:
public class RuntimeDemo {

        public static void main(String[] args) throws Exception {
                Runtime r = Runtime.getRuntime();
                r.exec("C:\\MineSweeper");
                }
}

7 个回复

正序浏览
草鱼狂飙 发表于 2014-8-4 14:02
我系统精简版本的,没有扫雷,
我以记事本为例说明下你代码中的几个问题

找到原因了,不能光拷贝可执行文件,win7下还需要dll文件和Minesweeper.exe.mui文件,跟xp不一样
回复 使用道具 举报
fantacyleo 发表于 2014-8-4 16:40
其实楼主你的程序已经运行成功了,如果是找不到扫雷程序,那么应该不会弹出GUI对话框,而是直接在命令行就 ...

用原始目录时,我代码少了个:\\Minesweeper; 应该有两个,第一个是文件夹,第二个是可执行文件,两个名字一样。非常感谢,确实不能放在C盘下,XP行win7不行。
回复 使用道具 举报
반야_바라_밀 发表于 2014-8-4 15:22
很明显你这个是由于没有加.exe后缀造成的。。。

不需要加exe在win7中
回复 使用道具 举报
其实楼主你的程序已经运行成功了,如果是找不到扫雷程序,那么应该不会弹出GUI对话框,而是直接在命令行就显示:bad name or command 我觉得扫雷程序已经启动,但你光copy可执行文件到C盘根目录下是不行的,那些必须的辅助文件,比如dll之类的找不到了,就会报错。我直接在原始目录下运行,一切正常:
  1. Runtime r = Runtime.getRuntime();
  2. r.exec("C:\\Program Files\\Microsoft Games\\Minesweeper\\Minesweeper");
复制代码
回复 使用道具 举报
牛!!!!!!!!!!!!
回复 使用道具 举报
很明显你这个是由于没有加.exe后缀造成的。。。
回复 使用道具 举报
我系统精简版本的,没有扫雷,
我以记事本为例说明下你代码中的几个问题

1)   r.exec("C:\\MineSweeper");
假如这句代码中单词正确,至少应该修改为MineSweeper.exe
2)Runtime中
exec(String command)
   在单独的进程中执行指定的字符串命令。
不能有路径吧。
3)exec(String[] cmdarray, String[] envp, File dir)
          在指定环境和工作目录的独立进程中执行指定的命令和变量。
需要路径的可以用这种方法
4)win7和win8对直接访问c盘数据的程序有保护程序
如果真要测试路径建议放d盘,这样会避免许多莫名其妙的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马