Lors de l'utilisation de Java à partir de Matlab, y a-t-il un moyen de déterminer d'où vient le chemin de la classe java de matlab? J'essaie de diagnostiquer une erreur causée par des versions conflictuelles de la même classe utilisée simultanément. En particulier, la classe que je cherche est org.apache.lucene.store.FSDirectory. Il semble être utilisé par l'une des boîtes à outils matlab, mais je ne sais pas lequel.Déterminer l'emplacement d'une classe java chargée par Matlab
Répondre
De http://www.exampledepot.com/egs/java.lang/ClassOrigin.html
// Get the location of this class
Class cls = this.getClass();
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation(); // file:/c:/almanac14/examples/
En supposant qu'un URLClassLoader
est utilisé, vous pouvez obtenir l'URL file:
du fichier de classe comme ceci:
ProblemClass.class.getResource("ProblemClass.class")
Utilisez la fonction inmem comme suit:
[M,X,J] = inmem
Cette fonction retourne la liste des classes Java dans l'argument de sortie J. (Elle renvoie également les noms de tous les fichiers M actuellement chargés dans M et les noms de tous les fichiers MEX actuellement chargés dans X.)
Voici un exemple de sortie de la fonction inmem:
[m,x,j] = inmem;
MATLAB® affiche:
j =
'java.util.Date'
'com.mathworks.ide.desktop.MLDesktop'
Merci, mais cela ne m'aide pas à comprendre exactement où java.util.Date se trouve sur le système de fichiers. – weiyin
par Thorbjørn Ravn Andersen, si référence j à un objet java dans Matlab, son emplacement peut être récupéré avec la ligne de code matlab suivante:
j.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()
Depuis 1.5 en utilisant:
java -verbose:class
Imprime où chaque classe a été chargé.
- 1. Rechercher l'endroit où la classe java est chargée
- 2. Comment utiliser les classes Java définies par l'utilisateur dans Matlab?
- 3. Rappel API Matlab/Java
- 4. Moteur MATLAB par rapport aux bibliothèques créées par MATLAB Compiler?
- 5. Comment puis-je déterminer si une classe Java est abstraite par réflexion
- 6. Comment importer par programme la classe Java
- 7. Vérifiez si une bibliothèque DLL est déjà chargée? (Java)
- 8. Déterminer par programme quel thread Java contient un verrou
- 9. Exécution de code après la classe est entièrement chargée
- 10. Appel de la poignée de callback/fonction matlab depuis Java
- 11. Fonctions par morceaux MATLAB + manipulation vectorielle
- 12. Comment déterminer la classe d'une page ASPX?
- 13. Comment déterminer la classe d'URL de la classe Contrôleur
- 14. MATLAB + JNI = erreur?
- 15. Actionscript 2: Une classe chargée dans une classe parent, obtenir les variables parent
- 16. Passer un million de nombres de java à matlab?
- 17. Classe d'exécution en Java
- 18. Comment déterminer la classe d'un type générique?
- 19. Matlab sous-question question
- 20. Comment déterminer la taille d'une image chargée à l'aide de Silverlight 2?
- 21. Comment déterminer une image chargée avec succès à partir d'un URI dans Silverlight 2.0 (RC0)?
- 22. Comment obtenir les résultats de Matlab en Java?
- 23. Une classe en Java peut-elle déterminer si elle a été modifiée?
- 24. Comment déterminer la classe principale au moment de l'exécution dans une application java threadée?
- 25. Java: façon de déterminer l'utilisateur Windows courant
- 26. méthode générique en Java, déterminer le type
- 27. Comment déterminer si une matrice est vide ou non dans matlab?
- 28. La classe Java question
- 29. Classe Java de jython
- 30. Échange Matlab
Cela fonctionne! Merci. – weiyin