你所说的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
}
}
public class transferExe {\x0d\x0a public static void main(String[] args) {\x0d\x0a openWinExe()\x0d\x0a openExe()\x0d\x0a }\x0d\x0a //用 Java 调用windows系统的exe文件,比如notepad,calc之类\x0d\x0a public static void openWinExe() {\x0d\x0a Runtime rn = Runtime.getRuntime()\x0d\x0a Process p = null\x0d\x0a try {\x0d\x0a String command = "notepad"\x0d\x0a p = rn.exec(command)\x0d\x0a } catch (Exception e) {\x0d\x0a System.out.println("Error win exec!")\x0d\x0a }\x0d\x0a }\x0d\x0a //调用其他的可执行文件,例如:自己制作的exe,或是 下载 安装的软件.\x0d\x0a public static void openExe() {\x0d\x0a Runtime rn = Runtime.getRuntime()\x0d\x0a Process p = null\x0d\x0a try {\x0d\x0a p = rn.exec("\"D:/QQ2010.exe\"")\x0d\x0a } catch (Exception e) {\x0d\x0a System.out.println("Error exec!")\x0d\x0a }\x0d\x0a }\x0d\x0a }举个例子吧,你要操作流,因此你引用了 java.io.*java 的常规操作,你用了java.lang.* 只是这个是系统自动导入的。
这些java.io.* 和 java.lang.* 就是包,既然你一直在引用这些包,为什么b不知道如何调用其他的呢?道理都是一样的嘛:
譬如我有这样一个类:
package com.test//打包
public class User{
private String username
public String getUserName(){
return username
}
public void setUserName(String username){
this.username=username
}
}
然后我在这个类中调用:
import com.ff.*//导包
public class Test{
public static void main(String[] args){
User user=new User()
user.setUserName("卡卡西");
System.out.println(user.getUserName())
}
}