你所说的java文件是什么文件?如果是java源码文件是不能调用的,但如果是编译后的class文件可以通过类加载器进行加载,然后通过反射调用;但一般会通过实现特定的接口来简化调用过程。一个自定义的类加载器如下:
class MyClassLoader extends ClassLoader {//类加载器的名称
private String name
//类存放的路径
private String path = "E:\\bin"
MyClassLoader(String name) {
this.name = name
}
MyClassLoader(ClassLoader parent, String name) {
super(parent)
this.name = name
}
/**
* 重写findClass方法,加载特定目录下的类文件
*/
@Override
public Class<?> findClass(String name) {
byte[] data = loadClassData(name)
return this.defineClass(name, data, 0, data.length)
}
public byte[] loadClassData(String name) {
try {
name = name.replace(".", "//")
FileInputStream is = new FileInputStream(new File(path, name + ".class"))
ByteArrayOutputStream baos = new ByteArrayOutputStream()
int b = 0
while ((b = is.read()) != -1) {
baos.write(b)
}
return baos.toByteArray()
} catch (Exception e) {
e.printStackTrace()
}
return null
}
}
对象调方法
class A
{
public void Out()//方法
{
System.out.println("a")
}
public static void main(String[] agrs)
{
A a=new A()//a是对象
a.Out()
}
}