java调用cmd编译(一)

利用java后台来编译运行C源文件,主要是为了开发一个在线编译网站的准备。
这里主要介绍如何编译运行C源文件,其实对于其他语言,道理都是一模一样的。

如何使用Java来编译运行C文件(一)

前言

码农的小日子过得好好的,指导老师一个兴起要求搞一个自己的在线编译网站,我们这种做小弟的只能老老实实地去搞。还好刚刚结束了考试与比赛,因为各种原因导致原定于寒假开工的项目延迟到下学期了,刚好趁这段空闲的时间来搞一搞。其实,自己感觉搞这个的话也挺好玩的~

介绍

利用java后台来编译运行C源文件,主要是为了开发一个在线编译网站的准备。
这里主要介绍如何编译运行C源文件,其实对于其他语言,道理都是一模一样的。

前期技术准备

1. 调用cmd编译C文件

先说明一下,我的操作系统是Win10,Linux环境下会有所不同;而编译环境是GCC。

  • 打开命令行界面并确认GCC可用
    1
    2
    3
    键盘win + r   ( 这里的r是run的意思)
    输入cmd,回车,你就看到了命令行
    输入gcc -v       --如果返回了结果,那么继续,如果不识别,那么请立刻参考“附录”

如:

  • 写好C语言源文件
    创建test.c文件,输入以下代码:
    1
    2
    3
    4
    5
    6
    #include<stdio.h>
    int main(){
        printf("hello world\n");
        getchar();
        rerturn 0;
    }

将.c文件放于E盘中,方便操作。

  • 编译该.c文件
    1
    2
    E: cd
    gcc test.c -o test

这里的cdchange directory的意思

接下来,在E盘中就能找到test.exe文件,双击运行即可。
备注:也可通过命令行来运行该文件!

  • 附录
    当你输入gcc时,之所以你看到了:
    1
    不是内部或外部命令,也不是可运行的程序或批处理文件。

因为你没有在自己的环境变量之中添加gcc.exe的路径。于是系统完全不知道去哪里寻找gcc.exe
关于GCC的安装配置我就不废话了,直接借用CSDN上firefoxbug大神的博文,附上链接
Windows下安装配置GCC编译器

2. Java运行命令行

java的Runtime.getRuntime().exec(string)可以调用执行cmd指令。

1
2
3
4
5
6
7
8
9
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
可以用cmd /?查看帮助信息。

附上一个简单的调用demo

1
2
3
4
5
6
7
8
9
10
11
12
13
    public static void main(String[] args) {
        String string = "要执行的cmd语句";
        Runtime run = Runtime.getRuntime();
        try {
            Process process = run.exec("cmd.exe /k start " + string);
            /*
            对进程 process 进行操作
             */
            process.destroy();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

关于多条cmd语句的执行问题
在许多情况下,只调用一条cmd语句明显不能满足我们的需求,需要多条cmd语句来共同配合使用。
关于网上使用&&来连接多条cmd语句的调用使用,本人亲测不成功,也有可能是我的操作有错(可与网上案例一模一样的代码运行不成功我也没办法啊,也考虑过是Windows操作系统的影响)。
最后,我是使用了bat批处理文件来解决这个问题的,具体案例请参考我的开发案例

常见的CMD命令
注意:以下命令均由互联网收集而来!!!
1. gpedit.msc—–组策略
2. sndrec32——-录音机
3. Nslookup——-IP地址侦测器
4. explorer——-打开资源管理器
5. logoff———注销命令
6. tsshutdn——-60秒倒计时关机命令
7. lusrmgr.msc—-本机用户和组
8. services.msc—本地服务设置
9. oobe/msoobe /a—-检查XP是否激活
10. notepad——–打开记事本
11. cleanmgr——-垃圾整理
12. net start messenger—-开始信使服务
13. compmgmt.msc—计算机管理
14. net stop messenger—–停止信使服务
15. conf———–启动netmeeting
16. dvdplay——–DVD播放器
17. charmap——–启动字符映射表
18. diskmgmt.msc—磁盘管理实用程序
19. calc———–启动计算器
20. dfrg.msc——-磁盘碎片整理程序
21. chkdsk.exe—–Chkdsk磁盘检查
22. devmgmt.msc— 设备管理器
23. regsvr32 /u .dll—-停止dll文件运行
24. drwtsn32—— 系统医生
25. rononce -p —-15秒关机
26. dxdiag———检查DirectX信息
27. regedt32——-注册表编辑器
28. Msconfig.exe—系统配置实用程序
29. rsop.msc——-组策略结果集
30. mem.exe——–显示内存使用情况
31. regedit.exe—-注册表
32. winchat——–XP自带局域网聊天
33. progman——–程序管理器
34. winmsd———系统信息
35. perfmon.msc—-计算机性能监测程序
36. winver———检查Windows版本
37. sfc /scannow—–扫描错误并复原
38. taskmgr—–任务管理器(2000/xp/2003
39. winver———检查Windows版本
40. wmimgmt.msc—-打开windows管理体系结构(WMI)
41. wupdmgr——–windows更新程序
42. wscript——–windows脚本宿主设置
43. write———-写字板
44. winmsd———系统信息
45. wiaacmgr——-扫描仪和照相机向导
46. winchat——–XP自带局域网聊天
47. mem.exe——–显示内存使用情况
48. Msconfig.exe—系统配置实用程序
49. mplayer2——-简易widnows media player
50. mspaint——–画图板
51. mstsc———-远程桌面连接
52. mplayer2——-媒体播放机
53. magnify——–放大镜实用程序
54. mmc————打开控制台
55. mobsync——–同步命令
56. dxdiag———检查DirectX信息
57. drwtsn32—— 系统医生
58. devmgmt.msc— 设备管理器
59. dfrg.msc——-磁盘碎片整理程序
60. diskmgmt.msc—磁盘管理实用程序
61. dcomcnfg——-打开系统组件服务
62. ddeshare——-打开DDE共享设置
63. dvdplay——–DVD播放器
64. net stop messenger—–停止信使服务
65. net start messenger—-开始信使服务
66. notepad——–打开记事本
67. nslookup——-网络管理的工具向导
68. ntbackup——-系统备份和还原
69. narrator——-屏幕“讲述人”
70. ntmsmgr.msc—-移动存储管理器
71. ntmsoprq.msc—移动存储管理员操作请求
72. netstat -an—-(TC)命令检查接口
73. syncapp——–创建一个公文包
74. sysedit——–系统配置编辑器
75. sigverif——-文件签名验证程序
76. sndrec32——-录音机
77. shrpubw——–创建共享文件夹
78. secpol.msc—–本地安全策略
79. syskey———系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
80. services.msc—本地服务设置
81. Sndvol32——-音量控制程序
82. sfc.exe——–系统文件检查器
83. sfc /scannow—windows文件保护
84. tsshutdn——-60秒倒计时关机命令
3. 84. tsshutdn——-60秒倒计时关机命令
85. tourstart——xp简介(安装完成后出现的漫游xp程序)
86. taskmgr——–任务管理器
87. eventvwr——-事件查看器
88. eudcedit——-造字程序
89. explorer——-打开资源管理器
90. packager——-对象包装程序
91. perfmon.msc—-计算机性能监测程序
92. progman——–程序管理器
93. regedit.exe—-注册表
94. rsop.msc——-组策略结果集
95. regedt32——-注册表编辑器
96. rononce -p —-15秒关机
97. regsvr32 /u
.dll—-停止dll文件运行
98. regsvr32 /u zipfldr.dll——取消ZIP支持
99. cmd.exe——–CMD命令提示符
100. chkdsk.exe—–Chkdsk磁盘检查
101. certmgr.msc—-证书管理实用程序
102. calc———–启动计算器
103. charmap——–启动字符映射表
104. cliconfg——-SQL SERVER 客户端网络实用程序
105. Clipbrd——–剪贴板查看器
106. conf———–启动netmeeting
107. compmgmt.msc—计算机管理
108. cleanmgr——-垃圾整理
109. ciadv.msc——索引服务程序
110. osk————打开屏幕键盘
111. odbcad32——-ODBC数据源管理器
112. oobe/msoobe /a—-检查XP是否激活
113. lusrmgr.msc—-本机用户和组
114. logoff———注销命令
115. iexpress——-木马捆绑工具,系统自带
116. Nslookup——-IP地址侦测器
117. fsmgmt.msc—–共享文件夹管理器
118. utilman——–辅助工具管理器
119. gpedit.msc—–组策略
120. explorer——-打开资源管理器

评论