Utilisation de com4j pour se connecter à une instance iTunes existante

En utilisant les wrappers com4j et iTunes, je peux démarrer une instance d’iTunes

ClassFactory.createiTunesApp(); 

de mon application et utiliser l’API avec succès.

Mais si iTunes fonctionne déjà de manière indépendante, il échoue avec

 com4j.ExecutionException: com4j.ComException: 80080005 CoCreateInstance failed : Server execution failed : .\com4j.cpp:153 at com4j.ComThread.execute(ComThread.java:236) at com4j.Task.execute(Task.java:26) at com4j.COM4J.createInstance(COM4J.java:99) at com4j.COM4J.createInstance(COM4J.java:74) at com.jthink.songkong.itunes.ClassFactory.createiTunesApp(ClassFactory.java:16) at com.jthink.songkong.ituneshelper.WindowsITunesModelCreator.createITunesModelInternal(WindowsITunesModelCreator.java:42) at com.jthink.songkong.ituneshelper.ITunesModelCreator.createITunesModel(ITunesModelCreator.java:263) at com.jthink.songkong.ituneshelper.ITunesModelCreator.run(ITunesModelCreator.java:227) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: com4j.ComException: 80080005 CoCreateInstance failed : Server execution failed : .\com4j.cpp:153 at com4j.Native.createInstance(Native Method) at com4j.COM4J$CreateInstanceTask.call(COM4J.java:119) at com4j.COM4J$CreateInstanceTask.call(COM4J.java:106) at com4j.Task.invoke(Task.java:50) at com4j.ComThread.run0(ComThread.java:172) at com4j.ComThread.run(ComThread.java:153) 

iTunes étant déjà en cours d’exécution, puis-je simplement me connecter à une instance iTunes existante au lieu d’essayer d’en créer une nouvelle si iTunes est déjà en cours d’exécution?

Il n’y a pas de solution actuelle, car l’application que vous utilisez ne prend pas en charge la version 64 bits, mais une application 32 bits. Déjà ce problème est publié dans Xira Dashboard: https://java.net/jira/browse/COM4J-80

Vraisemblablement, il s’agit du même problème que d’autres lors de l’exécution de Windows XP / Server 2003 et versions ultérieures lorsque le client exécute la version 64 bits et que l’environnement de développement est en 32 bits.

En réalité, ce problème ne se produit pas avec une machine virtuelle Java 32 bits.