Bonjour,

pour le besoin d'une application j'utilise des fichiers .class développés en Java.

Lorsque ces classes sont chargées en mémoire directement (JavaCharge() des fichiers .class) je n'ai aucun soucis.
Lorsque ces classes sont regroupées au sein d'un jar je me mange un message d'erreur :

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 
Erreur à la ligne 55 du traitement Procédure globale PG_SMTP_EnvoyerMail (Composant 'CMP_LomacoMail').
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
 - une description des circonstances de l'incident
 - les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
 - les informations techniques suivantes
 
Détails techniques :
 
Module : jvm.dll
Adresse de base : 6D7C0000
Erreur système : Access violation (GPF)
EIP = 6D8926A4
OS : Windows XP ou .NET Service Pack 2(5.1.2600)
 
Informations techniques
 
Projet : Kherty
Composant : CMP_LomacoMail
 
Dump de l'erreur du module <WD120VM.DLL> <12.01Cn>.
 
- Appel WL :
Traitement de <PG_SMTP.PG_SMTP_EnvoyerMail>, ligne <55>, thread <0>
 
- Niveau : erreur fatale (EL_FATAL)
 
- Code erreur : 1020
 
- Code erreur WD55 : 0
 
- Pas de code d'erreur système
 
- Pas de message d'erreur système
 
- Que s'est-il passé ?
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
 - une description des circonstances de l'incident
 - les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
 - les informations techniques suivantes
 
Détails techniques :
 
Module : jvm.dll
Adresse de base : 6D7C0000
Erreur système : Access violation (GPF)
EIP = 6D8926A4
OS : Windows XP ou .NET Service Pack 2(5.1.2600)
 
- Infos de debug :
Registres :
 
  EIP = 6D8926A4    EBP = 0012E5FC
  EAX = 00000000    EBX = 00D26230
  ECX = 00000006    EDX = 00000004
  ESI = 00D25400    EDI = 00000000
 
Pile des appels :
 
[jvm.dll (6D7C0000)]	6D890AA0 : JNI_GetCreatedJavaVMs() + 7172 bytes
[WD120JAV.DLL (28460000), 12.00Al, 01F120055n]	28461C85
[WD120JAV.DLL (28460000), 12.00Al, 01F120055n]	28475493 : GeneralParam() + 433 bytes
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 104253 bytes
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 103643 bytes
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25FAA340
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 42864 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E9C070 : EXT_pszGetMessageErreurDelegue() + 80864 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 49648 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 49584 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48192 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48368 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48240 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48384 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48544 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48560 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 49008 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48464 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 49024 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 132080 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 134128 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48480 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48512 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48528 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 48448 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
[WD120VM.DLL (25E60000), 12.01Cn, 01F120055n]	25E74390 : WL_SetParam() + 3072 bytes-> INVALID, stack increased by 4
Pile invalide
 
 
- Infos attachées :
EIT_PILEWL :
Procédure globale PG_SMTP_EnvoyerMail (PG_SMTP.PG_SMTP_EnvoyerMail), ligne 55
Méthode envoyer (CSMTP.envoyer), ligne 88
Clic sur BTN_ENVOYER (FEN_REDIGER_MSG.BTN_ENVOYER), ligne 31
Clic sur BTN_TOOLBAR_ECRIRE (FEN_MAIN.BTN_TOOLBAR_ECRIRE), ligne 2
EIT_COMPOSANT :
CMP_LomacoMail
EIT_DATEHEURE : 07/11/2008 10:24:44
 
- Identifiant dans le .err : 1020
 
 
Assistance
Donc concrètement, j'utilise Javamail (mail.jar), j'ai une classe WDMailSMTP.class qui contient une méthode statique prenant les paramètres. C'est l'interface entre Windev (qui n'accepte QUE les méthodes statiques avec JavaExecuteFonction()) et la classe java qui pourrait être réutilisable dans un autre projet java, MailSMTP.class .

Ma classe WDMailSMTP est donc appelée par un JavaExecuteFonction() dans une procédure globale d'un composant, cette procédure globale est encapsulée par une classe windev (dans ce même composant), la classe est rendue disponible à l'utilisation par le composant (pas la proc globale).

Le composant est ensuite intégré dans mon projet de base et j'ai donc un composant capable d'envoyer des mails (on construit des mails très simplement avec la classe du composant).
Le JavaCharge() est exécuté dans le code d'initialisation du projet appelant le composant et surtout pas dans le composant. Malgré ça, cela fonctionne bien avec des .class chargés directement, mais pas moyen d'exécuter des .class inclus dans des JAR.


Voili voilou... Je pense à contacter le support technique pour voir s'ils supportent l'utilisation des .JAR mais ça me parait dingue, faut pas déconner quand même c'est comme si on pouvait pas utiliser de DLL pour C/C++ ...