类管理和加载器部分。package InterfaceOfClass;
import java.net.*;
import java.io.*;
import java.util.*;
public class InterfaceOfClass extends ClassLoader
{ private String ProjectName=null;
private String path=null;
private String ServerClassName=null;
private String ClientClassName=null;
private byte[] classByteOfServerClass=null;
private byte[] classByteOfClientClass=null;
public Class ServerClassInstance=null;
public Object ServerInstance=null;
private DataOutputStream out=null;
private DataInputStream in=null;
private static Hashtable projects=new Hashtable();
public InterfaceOfClass(String ProjectName,String path,String ServerClassName,String ClientClassName){
super();
this.ProjectName=ProjectName;
this.path=path;
this.ServerClassName=ServerClassName;
this.ClientClassName=ClientClassName;
}
public static Hashtable returnHash(){
return projects;
}
public byte[] findClassBytes(String className){ try{
FileInputStream inFile = new FileInputStream(path+ "/"+className+".class");
byte[] classBytes = new byte[inFile.available()];
inFile.read(classBytes);
return classBytes;
} catch (java.io.IOException ioEx){return null;}
}
public Class findClass(String className)throws
ClassNotFoundException{ byte[] classBytes = findClassBytes(className);
if (classBytes==null){
throw new ClassNotFoundException();
}
else{//System.out.println(classBytes.length+"");
Class myclass=defineClass(className, classBytes,
0, classBytes.length);
// System.out.println(myclass.getClassLoader()+" ");
resolveClass(myclass);
return myclass;
}
}
public void newInstance()
{try{ ServerClassInstance.newInstance();}
catch(InstantiationException ex4){ex4.printStackTrace();}
catch(IllegalAccessException ex6){ex6.printStackTrace();}
}
public void setBytes()
{
classByteOfServerClass=findClassBytes(ServerClassName);
classByteOfClientClass=findClassBytes(ClientClassName);
}
public void setInstance(Class Instance)
{ServerClassInstance=Instance;
}
public void setIn(Object a)
{ServerInstance=a;
}
public void setStream(DataInputStream in,DataOutputStream out)
{this.in=in;
this.out=out;
}
public String getProjectName(){
return ProjectName;
}
public String getClassName()
{return ClientClassName;}
public void SendClassBytesToClient()
{
try{
out.write(classByteOfClientClass);
out.flush();}
catch(IOException ex){ex.printStackTrace();}
}
public void SendDataToClient(String data)
{ try{out.writeUTF(data);
out.flush();}
catch(IOException e){e.printStackTrace();}
}
public String ReceiveDataFromClient()
{ try{String temp=null;
temp=in.readUTF();
return temp;}
catch(IOException e){e.printStackTrace();return null;}
}
}
import java.net.*;
import java.io.*;
import java.util.*;
public class InterfaceOfClass extends ClassLoader
{ private String ProjectName=null;
private String path=null;
private String ServerClassName=null;
private String ClientClassName=null;
private byte[] classByteOfServerClass=null;
private byte[] classByteOfClientClass=null;
public Class ServerClassInstance=null;
public Object ServerInstance=null;
private DataOutputStream out=null;
private DataInputStream in=null;
private static Hashtable projects=new Hashtable();
public InterfaceOfClass(String ProjectName,String path,String ServerClassName,String ClientClassName){
super();
this.ProjectName=ProjectName;
this.path=path;
this.ServerClassName=ServerClassName;
this.ClientClassName=ClientClassName;
}
public static Hashtable returnHash(){
return projects;
}
public byte[] findClassBytes(String className){ try{
FileInputStream inFile = new FileInputStream(path+ "/"+className+".class");
byte[] classBytes = new byte[inFile.available()];
inFile.read(classBytes);
return classBytes;
} catch (java.io.IOException ioEx){return null;}
}
public Class findClass(String className)throws
ClassNotFoundException{ byte[] classBytes = findClassBytes(className);
if (classBytes==null){
throw new ClassNotFoundException();
}
else{//System.out.println(classBytes.length+"");
Class myclass=defineClass(className, classBytes,
0, classBytes.length);
// System.out.println(myclass.getClassLoader()+" ");
resolveClass(myclass);
return myclass;
}
}
public void newInstance()
{try{ ServerClassInstance.newInstance();}
catch(InstantiationException ex4){ex4.printStackTrace();}
catch(IllegalAccessException ex6){ex6.printStackTrace();}
}
public void setBytes()
{
classByteOfServerClass=findClassBytes(ServerClassName);
classByteOfClientClass=findClassBytes(ClientClassName);
}
public void setInstance(Class Instance)
{ServerClassInstance=Instance;
}
public void setIn(Object a)
{ServerInstance=a;
}
public void setStream(DataInputStream in,DataOutputStream out)
{this.in=in;
this.out=out;
}
public String getProjectName(){
return ProjectName;
}
public String getClassName()
{return ClientClassName;}
public void SendClassBytesToClient()
{
try{
out.write(classByteOfClientClass);
out.flush();}
catch(IOException ex){ex.printStackTrace();}
}
public void SendDataToClient(String data)
{ try{out.writeUTF(data);
out.flush();}
catch(IOException e){e.printStackTrace();}
}
public String ReceiveDataFromClient()
{ try{String temp=null;
temp=in.readUTF();
return temp;}
catch(IOException e){e.printStackTrace();return null;}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货