2010-04-06 6 views
1

J'essaie d'exécuter un fichier jar créé avec ant. Mais je ne suis pas capable de découvrir pourquoi les bibliothèques ne sont pas disponibles lors de l'exécution de jar. J'essaye de charger le conducteur de base de données embarqué de derby mais certain comment je ne reçois pas derby.jar dans classpath.erreur classpath lors de l'exécution d'un fichier jar par ant

erreur que je reçois est

[java] Unable to load the JDBC driver org.apache.derby.jdbc.EmbeddedDriver 
    [java] Please check your CLASSPATH. 
    [java] java.lang.ClassNotFoundExcepApplication Started 
    [java] tion: org.apache.derby.jdbc.EmbeddedDriver 
    [java]  at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 

un

<path id="jar.classpath"> 
    <fileset dir="${lib.dir}" includes="*.jar" /> 
</path> 

<path id="compiled-src.jar.classpath"> 
    <path refid="jar.classpath" /> 
    <pathelement location="${build.classes.dir}" /> 
</path> 

<target name="jar" depends="compile-src" description="Create Jar"> 
    <mkdir dir="${dist.dir}" /> 
    <manifestclasspath property="lib.list" jarfile="${dist.dir}/"> 
     <classpath refid="jar.classpath" /> 
    </manifestclasspath> 
    <jar destfile="${dist.dir}/${ant.project.name}.jar" basedir="${build.classes.dir}" > 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}" /> 
      <attribute name="Class-Path" value="${lib.list}" /> 
     </manifest> 
    </jar> 
</target> 

<target name="run" depends="jar" description="Run application from jar"> 
    <java jar="${dist.dir}/${ant.project.name}.jar" fork="true" /> 
</target> 

Répondre

0

Le paramètre jarfile à manifestclasspath doit être un nom de fichier et non un nom de répertoire.

Effectuez les opérations suivantes:

<manifestclasspath property="lib.list" jarfile="${dist.dir}/acme.jar"> 
    <classpath refid="jar.classpath" /> 
</manifestclasspath> 

Ma compréhension de la façon dont fonctionne la tâche est qu'il génère un classpath par rapport au nom de jarfile vous fournissez (Le nom de fichier ne doit pas exister)

Questions connexes