Hello,

J'ai une classe (AntCallTest) dans un jar. Elle contient un main, qui fait entre autre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
... Class.forName(args[i]).newInstance();
Donc qui créé une nouvelle instance d'après une string passée en paramètre.

Mon arborescence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
- Rep racine de l'applic
  - test
    - AntTest.java
    - DatabaseConfig.java
  - monJar.jar
    - configuration
      - AntCallTet.class
Lorsque j'appele cette fonction depuis une classe de test, pas de souci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
String[] tab = {"test.DatabaseConfig"};
AntCallTest.main(tab);
Mais si je le fais depuis un fichier ant, ca ne marche plus!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 <target name="callJava" depends="compile">
  <java classname="configuration.AntCallTest">
    <classpath>
      <pathelement location="lib/configuration-manager-1.1.jar"/>
    </classpath>
    <arg value="test.DatabaseConfig"/>
  </java>
</target>
Ca me met une erreur de ClassNotFoundException...

Une idée pourquoi? Je ne vois pas...

Merci d'avance!

A+

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
[java] java.lang.ClassNotFoundException: DatabaseConfig
     [java] at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1166)
     [java] at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
     [java] at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:983)
     [java] at java.lang.ClassLoader.loadClass(Unknown Source)
     [java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
     [java] at java.lang.Class.forName0(Native Method)
     [java] at java.lang.Class.forName(Unknown Source)
     [java] at configuration.AntCallTest.main(AntCallTest.java:12)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
     [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     [java] at java.lang.reflect.Method.invoke(Unknown Source)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134)
     [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:710)
     [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178)
     [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84)
     [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
     [java] at org.apache.tools.ant.Task.perform(Task.java:364)
     [java] at org.apache.tools.ant.Target.execute(Target.java:341)
     [java] at org.apache.tools.ant.Target.performTasks(Target.java:369)
     [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
     [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
     [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
     [java] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
     [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
     [java] configuration.ConfigException: Invalid arguments!: DatabaseConfig
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:180)
     [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:710)
     [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178)
     [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84)
     [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
     [java] at org.apache.tools.ant.Task.perform(Task.java:364)
     [java] at org.apache.tools.ant.Target.execute(Target.java:341)
     [java] at org.apache.tools.ant.Target.performTasks(Target.java:369)
     [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
     [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
     [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
     [java] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
     [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
     [java] Caused by: configuration.ConfigException: Invalid arguments!: DatabaseConfig
     [java] at configuration.AntCallTest.main(AntCallTest.java:16)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
     [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     [java] at java.lang.reflect.Method.invoke(Unknown Source)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134)
     [java] ... 14 more
     [java] --- Nested Exception ---
     [java] configuration.ConfigException: Invalid arguments!: DatabaseConfig
     [java] at configuration.AntCallTest.main(AntCallTest.java:16)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
     [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     [java] at java.lang.reflect.Method.invoke(Unknown Source)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202)
     [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134)
     [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:710)
     [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178)
     [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84)
     [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
     [java] at org.apache.tools.ant.Task.perform(Task.java:364)
     [java] at org.apache.tools.ant.Target.execute(Target.java:341)
     [java] at org.apache.tools.ant.Target.performTasks(Target.java:369)
     [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
     [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
     [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
     [java] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
     [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
     [java] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)