2010-10-20 6 views
2

je le code suivantAnt verbose échoue avec "paquet n'existe pas" malgré pot étant sur classpath

package myPackage; 

import org.neo4j.graphdb; 
import org.neo4j.kernel.EmbeddedGraphDatabase; 

public class dbServlet extends HttpServlet { 

public void init() throws ServletException { 
    // Start up the database here              
    GraphDatabaseService graphDb = new EmbeddedGraphDatabase("var/base"); 

} 

public void destroy() { 
    graphDb.shutdown(); 

} 

et build.xml:

<project name="dbServlet" basedir="." default="compile"> 

    <property name="src.dir" value="src"/> 
    <property name="lib.dir" value="lib"/> 
    <property name="build.dir" value="build"/> 
    <property name="classes.dir" value="${build.dir}/classes"/> 
    <property name="jar.dir" value="${build.dir}/jar"/> 

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

    <target name="clean"> 
     <delete dir="${build.dir}"/> 
    </target> 

    <target name="compile"> 
     <mkdir dir="${classes.dir}"/> 
     <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/> 
    </target> 

</project> 

Tous les pots de Neo4j sont situé dans un répertoire lib où le fichier build.xml est. La source se trouve dans src/myPackage/dbServlet.java. Quand je lance ant -v, le classpath inclut les jars qui ont les classes neo4j, mais javac dit que les paquets n'existent pas. Quelqu'un sait pourquoi cela pourrait être?

Heres un extrait des erreurs (je suis préoccupé par le premier pour l'instant, je sais que le servlet api de ne sont pas sur le chemin encore):

[javac] /home/shaun/projects/helloAnt/src/myPackage/dbServlet.java:3: package org.neo4j does not exist 
[javac] import org.neo4j.graphdb; 
[javac]    ^
[javac] /home/shaun/projects/helloAnt/src/myPackage/dbServlet.java:6: cannot find symbol 
[javac] symbol: class HttpServlet 
[javac] public class dbServlet extends HttpServlet { 
[javac]        ^
[javac] /home/shaun/projects/helloAnt/src/myPackage/dbServlet.java:8: cannot find symbol 
[javac] symbol : class ServletException 
[javac] location: class myPackage.dbServlet 
[javac]  public void init() throws ServletException { 
[javac]        ^
+0

ant -verbose ou ant -debug, puis vérifier les messages. Les fourmis abandonnent silencieusement les jarres du chemin de classe, si elles n'existent pas. – Jayan

+0

J'ai essayé, neo4j-kernel-1.1.jar a org.neo4j. [javac] Compilation arguments: [javac] '-d' [javac] '/ home/shaun/projets/helloAnt/build/classes' [javac] '-classpath' [javac] «/home/shaun/projects/helloAnt/build/classes: /home/shaun/projects/helloAnt/lib/jline-0.9.94.jar:/home/sh aun/projets/helloAnt/lib/lucene-core-2.9.2. jar:/home/shaun/projets/helloAnt/lib/neo4j-apo c-examples-1.1.jar: /home/shaun/projects/helloAnt/lib/neo4j-graph-algo-0.6.jar:/home/shaun /projects/helloAnt/lib/neo4j-kernel-1.1 .jar: .... – Shaun

Répondre

4

Il me semble que votre import n'est pas tout à fait correct - voulez-vous importer toutes les classes du paquet org.neo4j.graphdb?

import org.neo4j.graphdb.*; 

Sinon, vous devez donner un nom de classe spécifique. Le message d'erreur javac indique qu'un paquet org.neo4j est recherché - graphdb est traité comme un nom de classe.

+0

Life Saver, j'ai regardé cette chose pendant des heures ... Ajouté l'étoile et ça marche. Merci – Shaun

+0

aw, vous me battre. vient de se trouver http://api.neo4j.org/current/org/neo4j/graphdb/package-summary.html. bon – JoseK

Questions connexes