oi, estou com um dificuldade para passar um array como parâmetro para o jar que esta sendo carregado dinamicamente.Tento arrumar mas sempre acabo caindo nos erros de
- java.lang.IllegalArgumentException: argument type mismatch
- java.lang.IllegalArgumentException: wrong number of arguments
classe que carrega o objeto e invoca o .jar:
public class ClassLoad {
public static void main(String[] args) throws InvocationTargetException {
String filePath;
filePath = new String("C:\\Users\\lucas.oliveira\\Desktop\\HelloWorld.jar");
URL myJarFile = null;
try {
myJarFile = new URL("file:///"+filePath);
} catch (MalformedURLException e1) {
System.out.println("1");
e1.printStackTrace();
}
URLClassLoader cl = URLClassLoader.newInstance(new URL[]{myJarFile});
Class Jarred = null;
try {
Jarred = cl.loadClass("helloworld.HelloWorld");
} catch (ClassNotFoundException e) {
System.out.println("2");
e.printStackTrace();
}
Method simpleWrite = null;
try {
simpleWrite = Jarred.getMethod("main", new Class[] {String[].class});
} catch (SecurityException e) {
System.out.println("3");
e.printStackTrace();
} catch (NoSuchMethodException e) {
System.out.println("4");
System.out.println(e.getMessage());
//e.printStackTrace();
}
Object JarredObj = null;
try {
JarredObj = Jarred.newInstance();
} catch (InstantiationException e) {
System.out.println("5");
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("6");
e.printStackTrace();
}
String[] nome = new String[2];
nome[0] = "Lucas";
nome[1] = "Oliveira";
try {
Object response = simpleWrite.invoke(JarredObj, "lucas", "");
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
.jar que é invocado:
public void main(String[] args)
{
args = new String[2];
JOptionPane.showConfirmDialog(null, "Ola: " + args[0] + ":" + args[1]);
}

mas tive que converter o array q eu passei em Object ._.