Ant -verbose не работает, пакет не существует, несмотря на то, что jar находится в пути к классам

У меня есть следующий код

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>

Все jar-файлы neo4j находятся в каталоге lib, где находится файл build.xml. Источник находится в src / myPackage / dbServlet.java. Когда я запускаю ant -v, путь к классам включает jar-файлы с классами neo4j, но javac сообщает, что пакетов не существует. Кто-нибудь знает, почему это могло быть?

Вот фрагмент ошибок (я пока озабочен первой, я знаю, что 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]                               ^

person Shaun    schedule 20.10.2010    source источник
comment
ant -verbose или ant -debug, а затем проверьте сообщения. муравей молча отбрасывает банки из пути к классам, если они не существуют.   -  person Jayan    schedule 20.10.2010
comment
Пробовал, neo4j-kernel-1.1.jar имеет org.neo4j. [javac] Аргументы компиляции: [javac] '-d' [javac] '/ home / shaun / projects / helloAnt / build / classes' [javac] '-classpath' [javac] '/ home / shaun / projects / helloAnt / сборка / классы: /home/shaun/projects/helloAnt/lib/jline-0.9.94.jar: / home / sh aun / projects / helloAnt / lib / lucene-core-2.9.2.jar: / home / shaun / проекты / 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: ....   -  person Shaun    schedule 20.10.2010


Ответы (1)


Мне кажется, что ваш импорт не совсем правильный - вы хотите импортировать все классы в пакете org.neo4j.graphdb?

import org.neo4j.graphdb.*;

В противном случае вы должны дать конкретное имя класса. Сообщение об ошибке javac указывает на то, что ищется пакет org.neo4j - graphdb обрабатывается как имя класса.

person martin clayton    schedule 20.10.2010
comment
Life saver, часами смотрю на эту штуку ... Добавил звездочку и работает. Спасибо - person Shaun; 20.10.2010
comment
оу, ты победил меня. только что нашел api.neo4j.org/current/org/neo4j/ graphdb / package-summary.html. Неплохо - person JoseK; 20.10.2010