JAVA¦p¦ó调¥ÎDOS©R¥O
¥ÎJava编写应¥Î时¡A¦³时»Ýn¦bµ{§Ç¤¤调¥Î¥t¤@个现¦¨ªº¥i执¦æµ{§Ç©Î¨t统©R¥O¡A这时¥i¥H³q过组¦X¨Ï¥ÎJava´£¨ÑªºRuntime类©MProcess类ªº¤èªk实现¡C¤U±¬O¤@Ïú¤ñ较¨å«¬ªºµ{§Ç¼Ò¦¡¡G...
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor( );
...
¦b¤W±ªºµ{§Ç¤¤¡A²Ä¤@¦æªº¡§.\\p.exe¡¨¬On执¦æªºµ{§Ç¦W¡ARuntime.getRuntime()ªð¦^当«e应¥Îµ{§ÇªºRuntime对¶H¡A该对¶Hªºexec()¤èªk«ü¥ÜJava虚拟Éó创«Ø¤@个¤l进µ{执¦æ«ü©wªº¥i执¦æµ{§Ç¡A¦}ªð¦^ÉO该¤l进µ{对应ªºProcess对¶H实¨Ò¡C³q过Process¥i¥H±±¨î该¤l进µ{ªº执¦æ©Î获¨ú该¤l进µ{ªº«H®§¡C²Ä¤G条语¥yªº¥Øªºµ¥«Ý¤l进µ{§¹¦¨¦A©¹¤U执¦æ¡C
¦ý¦bwindows¥¥x¤W¡A¦pªG处²z¤£当¡A¦³时¦}¤£¯à±o¨ì预´Áªº结ªG¡C¤U±¬O笔ªÌ¦b实际编µ{¤¤总结ªº¤LÏú»Ýnª`·Nªº±¡况¡G
1¡B执¦æDOSªº内³¡©R¥O
¦pªGn执¦æ¤@条DOS内³¡©R¥O¡A¦³两Ïú¤èªk¡C¤@Ïú¤èªk¬O§â©R¥O¸Ñ释¾¹¥]§t¦bexec()ªº参数¤¤¡C¨Ò¦p¡A执¦ædir©R¥O¡A¦bNT¤W¡A ¥i写¦¨exec("cmd.exe /c dir")¡A¦bwindows 95/98¤U¡A¥i写¦¨¡§command.exe /c dir¡¨¡A¨ä¤¤参数¡§/c¡¨ªí¥Ü©R¥O执¦æ¦Z关闭Dos¥ß§Y关闭µ¡¤f¡C¥t¤@Ïú¤èªk¬O¡A§â内³¡©R¥O©ñ¦b¤@个§å©R¥Omy_dir.bat¤å¥ó¤¤¡A¦bJavaµ{§Ç¤¤写¦¨exec("my_dir.bat")¡C¦pªG仅仅写¦¨exec("dir")¡AJava虚拟Éó则会报运¦æ时错误¡C«e¤@Ïú¤èªkn«O证µ{§Çªº¥i²¾´Ó©Ê¡A»Ýn¦bµ{§Ç¤¤读¨ú运¦æªº¾Þ§@¨t统¥¥x¡A¥H调¥Î¤£¦Pªº©R¥O¸Ñ释¾¹¡C¦Z¤@Ïú¤èªk则¤£»Ýn°µ§ó¦hªº处²z¡C
2¡B¥´开¤@个¤£¥i执¦æªº¤å¥ó
¥´开¤@个¤£¥i执¦æªº¤å¥ó¡A¦ý该¤å¥ó¦s¦b关联ªº应¥Îµ{§Ç¡A则¥i¥H¦³两Ïú¤è¦¡¡C ¥H¥´开¤@个word¤å档a.doc¤å¥ó为¨Ò¡AJava¤¤¥i¥H¦³¥H¤U两Ïú写ªk¡G
exec("start .\\a.doc");
exec(" c:\\Program Files\\Microsoft Office\\office\\winword.exe .\\a.doc");
显µM¡A«e¤@Ïú¤èªk§ó为简±¶¤è«K¡C
3¡B执¦æ¤@个¦³标ã输¥XªºDOS¥i执¦æµ{§Ç
¦bwindows¥¥x¤W¡A运¦æ³Q调¥Îµ{§ÇªºDOSµ¡¤f¦bµ{§Ç执¦æ§¹毕¦Z©¹©¹¦}¤£会¦Û动关闭¡A从¦Ó导PJava应¥Îµ{§Çªý¶ë¦bwaitfor( )¡C导P该现¶Hªº¤@个¥i¯àªºì¦]¬O¡A该¥i执¦æµ{§Çªº标ã输¥X¤ñ较¦h¡A¦Ó运¦æµ¡¤fªº标ã输¥X缓冲区¤£够¤j¡C¸Ñ决ªº办ªk¬O¡A§Q¥ÎJava´£¨ÑªºProcess类´£¨Ñªº¤èªk让Java虚拟ÉóºI获³Q调¥Îµ{§ÇªºDOS运¦æµ¡¤fªº标ã输¥X¡A¦bwaitfor()©R¥O¤§«e读¥Xµ¡¤fªº标ã输¥X缓冲区¤¤ªº内®e¡C¤@¬q¨å«¬ªºµ{§Ç¦p¤U¡G
...
String ls_1;
Process process = Runtime.getRuntime().exec("cmd /c dir \\windows");
BufferedReader bufferedReader = new BufferedReader( \
new InputStreamReader(process.getInputStream());
while ( (ls_1=bufferedReader.readLine()) != null)
System.out.println(ls_1);
’Â
process.waitfor( );
...
¥H¤W内®e为转载~¤U±内®e为ì创¡I
¤µ¤Ñ¦b°µ«È户ºÝµ{§Çªº¦Û动§ó·s¡A简单´yz¤@¤U¡A´N¬O从ªA务¾¹¤W将§ó·s¥]¤U载¤U来¡AµM¦Z¦b¥»¦a¸Ñ压缩¡A³Ì¦Z删±¼~¥\¯à«Ü简单~
¦ý¬O问题¥X¦b¨Ï¥ÎJAVAªºZIP¼Ò块°µ¤å¥óªº¸Ñ压缩¤£¬O·Q¶Hªº¨º¤\简单¡A资·½»Ýn释©ñ¡A¤@个¤£¤p¤ß´N没¦³办ªk删°£±¼ì¦³ZIP¤å¥ó¤F~资·½ªº¥e¥ÎÚÌ实¬O个¤j问题¡A¦ý¬O¦n¦b¡A«È户ºÝµ{§Ç§ó·s§¹¬On«启ªº¡A¤@¤Á³£烟®ø¤ª´²¤F~对¤_删°£¤£±¼ZIP¤å¥óªº问题¡A§Ú¤]¬yª]¤@¤U~¥ÎDELµw删°£~¦¹处¤@©wnª`·N¡I
Process process = Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc");
这样ªº调¥Î¬O没¦³问题~
Process process = Runtime.getRuntime().exec("del f:\\aaa.doc");
这样写¬O¤£¥i¯à对ªº~ A nice topic, thanks a lot! ÁÂÁ¤j¤jªº¤À¨É³o©Û¨S¥Î¹L¥ý¨Ó¬ã¨s¬Ý¬Ý unix¤Uªº©R¥O¤]¬O¥i¥H这样ªº调¥Îªº¡C¡C¡C SHELLÔ£ªº¡C¡C **** §@ªÌ³Q¸T¤î©Î§R°£ ¤º®e¦Û°Ê«Ì½ª ****
¶:
[1]