2010-10-20 38 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