我试图从的.jar找不到阵列的声明符号类[]
调用方法,但是,当我要声明params用于在getDeclaredMethod的阵列我有一个错误的“无法找到符号”
Class[] params = new Class[]{ String };
^
全法
public void CallCloseWindow(String title){
//export dll
InputStream in = staticapi.class.getResourceAsStream("CloseWindow.dll");
File fileOut = new File(System.getProperty("C:\\Java\\CloseWindow.dll"));
OutputStream out = new FileOutputStream(fileOut);
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
in.close();
out.close();
//call from jar class
Class[] params = new Class[]{ String };
Object[] parms = new Object[] { new String(title) };
URL url=new URL("jar:file:/callapi.jar/");
URLClassLoader ucl = new URLClassLoader(new URL[] { url });
Class obj = Class.forName("callapi.callapi", true, ucl);
Method m = obj.getDeclaredMethod("CloseWindow",params);
Object instance = obj.newInstance();
Object result = m.invoke(instance,parms);
}
什么问题?String.TYPE无法正常工作或
这是Java?什么样的构造是 - 'new Class [] {String.class}' – Coffee 2012-04-01 19:08:51
是的,它是Java,你只用一个元素(String.class)构造一个Class数组。 – Fido 2012-04-01 19:10:27
@Adel:这是完全标准的Java(但是你引用的位不完整,没有'new'就没有意义了)。 – NPE 2012-04-01 19:10:39