Bonjour à tous,
Je souhaite développer une fonction Matlab permettant de charger dynamiquement (sans editer le classpath de Matlab) un jar.
Pour cela, j'ai déjà un code en Java qui fonctionne. Je peux le mettre dans un jar, l'ajouter au classpath de Matlab et l'appeller depuis Matlab. Ca fonctionne.
Voici le code:
Maintenant, j'aimerais convertir ce code Java en une fonction Matlab. Hors, je peine avec la ligne suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private static final Class[] parameters = new Class[] { URL.class }; public static void loadJar(String fileName) throws IOException { URL url = new File(fileName).toURL(); URLClassLoader classLoader = (URLClassLoader)ClassLoader.getSystemClassLoader(); Class sysclass = URLClassLoader.class; try { Method method = sysclass.getDeclaredMethod("addURL", parameters); method.setAccessible(true); method.invoke(classLoader, new Object[] { url }); } catch (Throwable throwable) { throwable.printStackTrace(); } }
URLClassLoader classLoader = (URLClassLoader)ClassLoader.getSystemClassLoader();
Comment faire le cast de ClassLoader en URLClassLoader ?
Voici ce que j'ai pour l'instant en Matlab:
J'obtiens l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function loadJar(jarFile) import java.lang.*; import java.io.File; import java.io.IOException; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; file = File(jarFile); url = file.toURL(); classLoader = ClassLoader.getSystemClassLoader(); urlClassLoader = cast(classLoader, 'java.net.URLClassLoader'); urlClassLoader.addURL(url);
Si quelqu'un a un peu d'expérience avec l'utilisation de Java depuis Matlab...>>loadJar('C:/loadJar.jar')
??? Error using ==> cast
Unsupported class for conversion.
Error in ==> loadJar at 16
urlClassLoader = cast(classLoader, 'java.net.URLClassLoader');
Merci d'avance
Partager