Bonjour,
un petit mail d'au secours concernant le bridge Java/COM jacob.
J'essaie de l'utiliser depuis hier et je rencontre quelques problêmes. J'ai réussi à faire fonctionner un exemple classique d'écriture dans un fichier excel mais c'est à partir de là que ca se corse :
impossible d'utiliser une dll vb à partir de Java, et je n'arrive pas à faire tourner le programme qu'ils donnent en réference... :s
Voici le listing du prog java :
import com.jacob.com.*;
/*
* This example uses the MathTest sample VB COM DLL under
* the MathProj directory
*/
class math
{
public static void main(String[] args)
{
System.runFinalizersOnExit(true);
Dispatch test = new Dispatch("MathTest.Math");
testEvents te = new testEvents();
DispatchEvents de = new DispatchEvents(test, te);
System.out.println(Dispatch.call(test, "Add", new Variant(1), new Variant(2)));
System.out.println(Dispatch.call(test, "Mult", new Variant(2), new Variant(2)));
Variant v = Dispatch.call(test, "Mult", new Variant(2), new Variant(2));
// this should return false
System.out.println("v.isNull="+v.isNull());
v = Dispatch.call(test, "getNothing");
// these should return nothing
System.out.println("v.isNull="+v.isNull());
System.out.println("v.toDispatch="+v.toDispatch());
}
}
class testEvents {
public void DoneAdd(Variant[] args)
{
System.out.println("DoneAdd called in java");
}
public void DoneMult(Variant[] args)
{
System.out.println("DoneMult called in java");
}
}
Les erreurs de compilation :
Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:101)
at math.main(math.java:12)
Je tiens à préciser que les dll utilisées (celles de Jacob et celle nommée MathTest.dll) sont bien dans le répertoire System32 mais que je ne les ai pas enregistré.
Merci d'avance !
Configuration: Windows XP
Internet Explorer 7.0