2010-10-02 61 views
7

Tôi đang cố gắng để biên dịch ActionFactory.java tập tin mà nhập khẩu một trong những gói của tôi, RegisterAction.javaANT - javac biên dịch thất bại do không thể tìm thấy biểu tượng

Dưới đây là cấu trúc file:

/com/masatosan/hành động/đăng ký/RegisterAction.java

/com/masatosan/redirector/ActionFactory.java

Theo kết quả ANT, tôi nghĩ ANT không thể tìm thấy RegisterAction.java được nhập khẩu ActionFactory.java

Nó biên dịch thành công khi tôi chạy javac trên bảng điều khiển theo cách thủ công vì vậy đây phải là một số cài đặt đường dẫn lớp mà ANT không xem.

Tôi biết tôi có thể thêm một số jar vào ANT_HOME/lib nhưng trong trường hợp của tôi, ANT dường như không thể tìm thấy ActionRegister.java, không phải jar hoặc cái gì khác. Bất cứ ai có thể giúp tôi tìm hiểu những gì sai?

ANT kịch bản

<project name="CompileMasatosan" default="main" 
    basedir="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan"> 
    <description> 
     masatosan compiler 
    </description> 

    <!-- this invokes all targets --> 
    <target name="main" depends="compileAll" /> 

    <!-- properties --> 
    <property name="srcMasatosan" 
     location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan" /> 

    <property name="dest" 
    location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\WEB-INF\classes" /> 

    <property name="redirectorSrc" location="${srcMasatosan}\redirector" /> 

    <!-- complie --> 
    <target name="compileAll"> 
     <javac target="1.5" source="1.5" srcdir="${redirectorSrc}" destdir="${dest}" /> 
    </target> 

</project> 

Môi trường Variable

ANT_HOME=C:\apache-ant-1.8.1-bin\apache-ant-1.8.1 

CLASSPATH=C:\Program Files\Java\jre6\bin;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib;C:\Program Files\Java\jre6\bin;C:\P 
rogram Files\Apache Software Foundation\Tomcat 6.0\lib\mail.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib;C:\Program F 
iles\Java\jre6\bin;C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\actions\register; 

ActionFactory.java

package com.masatosan.redirector; 
import com.masatosan.actions.register.RegisterAction; 

public class ActionFactory { 
//some code here... 

} 

đầu ra ANT

C:\apache-ant-1.8.1-bin\javac_masatosan\debug>ant 
Buildfile: C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml 

compileAll: 
    [javac] C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml:47: warning: 'includeantruntime' was not set, defaulting to build.s 
ysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 4 source files to C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\WEB-INF\classes 
    [javac] C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\redirector\ActionFactory.java:1 
5: cannot find symbol 
    [javac] symbol : class RegisterAction 
    [javac] location: package com.masatosan.actions.register 
    [javac] import com.masatosan.actions.register.RegisterAction; 
    [javac]         ^
    [javac] C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\redirector\ActionFactory.java:2 
4: cannot find symbol 
    [javac] symbol : class RegisterAction 
    [javac] location: class com.masatosan.redirector.ActionFactory 
    [javac]    actions.put("POST/process_register.do", new RegisterAction()); 
    [javac]              ^
    [javac] 2 errors 

BUILD FAILED 
C:\apache-ant-1.8.1-bin\javac_masatosan\debug\build.xml:47: Compile failed; see the compiler error output for details. 

Trả lời

10

Có vẻ như bạn đang xác định chỉ có một "SourcePath" thành "javac" - và không phải cả hai. Có lẽ bạn nên làm

<target name="compileAll"> 
    <javac target="1.5" source="1.5" destdir="${dest}"> 
    <src path="${redirectorSrc}"/> 
    <src path="${srcMasatosan}"/> 
    </javac>  
</target> 
+0

Xin lỗi vì trả lời muộn, cảm ơn bạn, giải pháp của bạn giải quyết vấn đề. –

+1

typo: '..target =" 1.5 source = "1.5 ...'? – Tshepang

0
Make it point to your exact jar files directory where jars are present 
<path id="classpath"> 
<fileset dir="${main.jar}" includes="**/*.jar"/> 
<!-- <pathelement location="${src.dir}" />--> 
</path> 

----in my case jar files present in ---- 
<property name="main.jar"  value="jar"/> 
Các vấn đề liên quan