Quantcast
Channel: GUJ - Tópicos com a tag java
Viewing all articles
Browse latest Browse all 17410

Carregando um jar dinamicamente e instanciação de objetos

$
0
0

@LooKs escreveu:

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]); 
}

:neutral_face:

Mensagens: 4

Participantes: 3

Ler tópico completo


Viewing all articles
Browse latest Browse all 17410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>