Javaµ÷ÓÃϵͳÃüÁîѧϰ£¨Èý£©
ѧϰÁËÁ½ÆªµÄRuntimeÀ࣬ÏÖÔÚ¶ÔËüÓÐÁ˸üÉîÒ»²ãµÄÁ˽⣬ÄÇôÎÒÃÇÀ´¿´¿´ÏÂÃæµÄ´úÂ룺
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader ;
import java.io.BufferedReader;
public class Exec_Output{
public static void main(String []args)throws IOException,InterruptedException{
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("dir");
//int exitValue = p.exitValue();
//int exitValue = p.waitFor();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while((line = br.readLine())!=null){
System.out.println(line);
System.out.println("</OUTPUT>");
int exitValue = p.waitFor();
System.out.println("Process exitValue="+exitValue);
}
}
}
//Ö´Ðнá¹û£¨ÔÚUbuntu9.10ÏÂÖ´ÐУ©
<OUTPUT>
class CUtil.java Exec.java Exec_Javac.java Exec_Output.java Str.java
</OUTPUT>
ÒòΪÒÔÉÏ´úÂ룬ÎÒʹÓÃÁËUbuntu9.10ÏÂÖ´ÐУ¬ÊÇÒ»µãÎÊÌⶼûÓУ¬µ«µ±ÎÒÔÚwindows xpÏÂÖ´ÐУ¬ÒâÍâÈ´·¢ÉúÁË¡£
E:classescomjavaworldjpitfallsarticle2>java BadExecWinDir
java.io.IOException: CreateProcess: dir error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Unknown Source)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at BadExecWinDir.main(BadExecWinDir.java:12)
Ò²Ðí´ó¼Ò¾õµÃÆæ¹Ö£¬ÆäʵÎÒÒ²ºÜÆæ¹Ö£¬ÎªÊ²Ã´ÄØ¡£ºÃºÃÔÚLinuxÏ£¬Õ¦µ½XP¾ÍÓÐÎÊÌâÁËÄØ¡£
ÒÔÏÂÒýÓÃÁ˱ðÈ˵ϰ£º
˵ʵ
Ïà¹ØÎĵµ£º
ƾ½èJNBridge
¼¼Êõ£¬JavaºÍ.NET´úÂëÎÞÐè½»²æ±àÒë
Æ÷¾Í¿ÉÒÔʵÏÖ¶ÔÏó¹²Ïí¡£ËùÓÐJava´úÂëÔËÐÐÔÚJVMÉÏ£¬¶ø.NET´úÂëÔòÔËÐÐÔÚCLRÉÏ¡£Ôڸ÷½°¸Ï£¬JVMºÍCLR¿ÉÒÔÔËÐÐÔÚ²»Í¬µÄ»úÆ÷ÉÏ£¬Ò²¿ÉÒÔÔË
ÐÐÔÚһ̨»úÆ÷µÄ²»Í¬½ø³ÌÉÏ£¬ÉõÖÁ»¹ÄÜÔËÐÐÔÚÏàͬµÄ½ø³ÌÉÏ¡£´Ó¿ª·¢ÕߵĽǶÈÀ´¿´£¬ÔËÐÐÔÚÆäËûÐéÄâ»úÉϵĶÔÏó½ö½öÊÇ´úÀíµÄÔ¶³Ì¶ÔÏó¶øÒÑ¡£JN ......
¾¹ýÉÏһƪµÄѧϰ£¬Ó¦¸Ã¶ÔJavaÖеÄRuntimeÀàµÄexec·½·¨ÁË´óÖµÄÁ˽⣬Ҳ֪µÀÓ¦¸ÃÈçºÎȥʹÓÃÁ˰ɡ£
Ê×ÏÈѧϰÏ£ºProcessÀà¡£
¼òµ¥µØ²âÊÔһϣº
µ÷ÓÃJavacÃüÁ²¢²é¿´Ö´ÐÐÃüÁîµÄ·µ»ØÖµ£¬²¢Êä³öµ½¿ØÖÆÌ¨ÉÏÈ¥¡£
import java.io.IOException;
class Exec_Javac{
public static void main(String []args)throws IO ......
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
/**
*
* ¶àÖÖ·½Ê½¶ÁÎ ......
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* ½«ÄÚÈÝ×·¼Óµ½Îļþβ²¿
*/
public class AppendToFile
{
/**
* A·½·¨×·¼ÓÎļþ£ºÊ¹ÓÃRandomAccessFile
*
  ......
Map¡¢Set¡¢Iteratorµü´úÏê½â
Map½Ó¿Ú¶¨ÒåÁËËÄÖÖÀàÐ͵ķ½·¨£¬Ã¿¸öMap¶¼°üº¬ÕâЩ·½·¨¡£
equals(Object o)±È½ÏÖ¸¶¨¶ÔÏóÓë´ËMapµÄµÈ¼ÛÐÔ¡£
hashCode()·µ»Ø´ËMapµÄ¹þÏ£Âë¡£
Map¶¨ÒåÁ˼¸¸öÓÃÓÚ²å·ÅºÍɾ³ýÔªËØµÄ±ä»»·½·¨¡£
remove(Object key) ´ÓMapÖÐɾ³ý¼üºÍ¹ØÁªµÄÖµ¡£
put(object key,Object value) ½«Ö¸¶¨ÖµÓëÖ¸¶¨¼üÏà¹Ø ......