将楼二楼和三楼结合,就是一个完正范例了 class A { public void method1(String str1) { out.println(str1); } public void method2(String str2) { out.println(str2); } public void method3(String str3) { out.println(str3); } } public class Test { public static void main(String args[]) { Class cls = Class.forName("A"); Method mtd = cls.getMethod("method1",new Class[]{String.class}); Object obj = cls.newInstance();
class A
{
public void method1()
{
//
}
public void method2()
{
//
}
public void method3()
{
//
}
}
public class Test
{
public static void main(String args[])
{
A app=new A();
if(args[0].equals("A"))
{
if(args[1].equals("method1")
{
app.method1();
}
else if(args[1].equals("method2")
{
app.method2();
}
else if(args[1].equals("method3")
{
app.method3();
}
}
else
{
//
}
}
}
采用反射:{ public void setMessage(String str)
...
}Class cls = Class.forName("className");
Method mtd = cls.getMethod("setMessage",new Class[]{String.class});
Object obj = cls.newInstance();
mtd.invoke(obj,new Object[]{"Hello "});
class A
{
public void method1(String str1)
{
out.println(str1);
}
public void method2(String str2)
{
out.println(str2);
}
public void method3(String str3)
{
out.println(str3);
}
}
public class Test
{
public static void main(String args[])
{
Class cls = Class.forName("A");
Method mtd = cls.getMethod("method1",new Class[]{String.class});
Object obj = cls.newInstance();
mtd.invoke(obj,new Object[]{"Hello"}); }
}
嗯,差不多就是那个想法..
class TestJavac {
public static void main(String args[]){
try{
Runtime rt = Runtime.getRuntime();
String srcFile ="C:/HelloWorld.java";
String command = "javac ";
rt.exec(command+srcFile);
System.out.println("Compile File Success!");
}catch(Exception e){
System.out.println("Compile File Fail!");
e.printStackTrace();
}
}
}
但这个方法,假设源文件无法编译的话,错误信息根本无法得到
public class T
{
dsalfalsf;
}// 编译文件TestJavac.java
import java.io.*;class TestJavac {
public static void main(String args[]){
try{
Runtime rt = Runtime.getRuntime();
String srcFile ="F:/T.java";
String command = "javac ";
Process proc = rt.exec(command+srcFile);
proc.waitFor();
BufferedReader br = new BufferedReader( new InputStreamReader(proc.getErrorStream()));
String strInfo = br.readLine();
while(strInfo!= null){
System.out.println(strInfo);
strInfo = br.readLine();
}
System.out.println("Compile File Success!");
}catch(Exception e){
System.out.println("Compile File Fail!");
e.printStackTrace();
}
}
}运行结果:
F:\>java TestJavac
F:/T.java:4: <identifier> expected
dsalfalsf;
^
1 error