2010-10-20 36 views
2

我有以下代码蚂蚁-verbose失败,“包不存在”,尽管罐子是在类路径

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(); 

} 

和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> 

所有Neo4j的罐子是位于build.xml文件所在的lib目录中。源位于src/myPackage/dbServlet.java。当我运行ant -v时,类路径包括具有neo4j类的jar,但是javac说这些包不存在。任何人都知道为什么会这样?

继承人的错误的片段(我关心的是第一个,现在,我知道在Servlet API的不是的道路上还):

[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或ant-debug然后检查消息。如果蚂蚁不存在,蚂蚁会默默地从班级路径中丢弃瓶子。 – Jayan

+0

试过了,neo4j-kernel-1.1.jar有org.neo4j。 为[javac]编译参数: [javac的] '-d' [javac的 '/家庭/肖恩/项目/ helloAnt /编译/班' [javac的] '-classpath' [javac的“/家庭/ shaun/projects/helloAnt/build/classes:/home/shaun/projects/helloAnt/lib/jline-0.9.94.jar:/ home/sh aun/projects/helloAnt/lib/lucene-core-2.9.2。 jar:/ home/shaun/projects/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

回答

4

看来我喜欢你导入不太正确 - 是否要导入org.neo4j.graphdb包中的所有类?

import org.neo4j.graphdb.*; 

否则你应该给一个特定的类名称。 javac错误消息表示正在寻找包org.neo4j - graphdb被视为类名。

+0

拯救生命,我一直盯着这个东西好几个小时......新增了明星,它的工作原理。谢谢 – Shaun

+0

aw,你打败了我。刚刚发现http://api.neo4j.org/current/org/neo4j/graphdb/package-summary.html。好的 – JoseK