Ant build/javac 编译的classpath问题, 高手请进

chinagaici 2007-09-11 03:45:11
我们都知道, javac的类搜索路径的优先级是
1. 命令行中-classpath指定的路径。
2. 操作系统环境变量的CLASSPATH指定的路径。
3. 当前目录下。
也就是说, 当1没有指定才找2, 2没有指定才找3。

但是, 我在ANT中进行javac的target时却发生了很奇怪的事情,
当一个类不能在ant/javac中指定的classpath中找到,它就去操作系统中的环境变量CLASSPATH中找。这是合理的吗?
...全文
2993 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhc565237967 2008-10-27
  • 打赏
  • 举报
回复
我是学习liferay的新手,ant用的是apache-ant-1.7.1
jikes用的是jikes1.2
jdk是jdk1.6
在build.properties 中修改了编辑器类型为jikes,在Myeclipse中设置ant的同时也设置了
Global Entries使之指向jdk里面的tool.jar 。但是在编译的时候仍然会出现下面错误:
\portal\portal-kernel\build.xml:23: Class not found: ${javac.compiler}

我的build.xml中指示的出错位置
<target name="start">
<antcall target="compile" />

<ant dir="util-taglib" target="jar" inheritAll="false" />

<target name="compile">
<ant dir="portal-kernel" target="compile" inheritAll="false" />
<ant dir="portal-service" target="compile" inheritAll="false" />
中的含有compile部分。
zlhowzlhow 2008-05-22
  • 打赏
  • 举报
回复
三楼哥们的问题,是ant找不到tools.jar,我也碰到这个问题过,设置下java compiler就好了。
chinagaici 2007-09-25
  • 打赏
  • 举报
回复
去jdk里找啊
superyf123 2007-09-11
  • 打赏
  • 举报
回复
tools.jar我找不到
chinagaici 2007-09-11
  • 打赏
  • 举报
回复
3楼, 请把你的tools.jar配置到你的eclipse里的ant lib中, 你和我不是一个问题
chinagaici 2007-09-11
  • 打赏
  • 举报
回复
学ant来这里http://ant.apache.org/manual/index.html,地球人都知道阿
guanghezaixian 2007-09-11
  • 打赏
  • 举报
回复
《.Net 3.0 框架与三大关键技术应用》网络直播培训消息

微软授权技术专家系统介绍微软新一代操作系统Vista和.Net 3.0的框架,并展示新架构在界面设计(WPF)、企业级通讯(WCF)和工作流(WF)的开发领域带来的革命!

一线实战讲师、真实项目案例、生动演示和权威讲解!

同时,国内第一次采用网络直播培训(视频、声音、互动同步方式),不仅形式新颖、操作容易、代表未来方向,更重要的是不必车马劳顿,培训价格更低!非常适合快速变化的IT技术培训。

9月22日正式开始!虚拟教室座位有限,请从速报名,抢先体验.Net 3.0和网络培训的全新组合!
详情访问 www.hiray.net/ad/a.htm
QQ:65737098
superyf123 2007-09-11
  • 打赏
  • 举报
回复
楼主学ANT看哪本书的?
superyf123 2007-09-11
  • 打赏
  • 举报
回复
我也遇到相同的问题!

<?xml version="1.0" encoding="UTF-8"?>
<project default="dist" name="project argon">
<description>A simple java project</description>
<property name="srcDir" location="src" />
<property name="buildDir" location="build" />
<property name="distDir" location="dist" />

<target name="init">
<tstamp>
</tstamp>
<mkdir dir="${buildDir}" />
<mkdir dir="${distDir}" />
</target>

<target name="complie" depends="init">
<javac srcdir="${srcDir}" destdir="${buildDir}" />
</target>

<target name="dist" depends="complie">
<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Main-Class" value="package.Main" />
</manifest>
</jar>
<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}">
</jar>
</target>

<target name="clean">
<delete dir="${buildDir}">
</delete>
<delete dir="${distDir}" />
</target>

</project>


输出结果:Buildfile: D:\workspace\hello\build.xml
init:
complie:
[javac] Compiling 2 source files to D:\workspace\hello\build

BUILD FAILED
D:\workspace\hello\build.xml:16: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK

Total time: 1 second

希望大家能帮我解答!
我估计要添加一个classpath属性,但不知道怎么加!
我用的是eclipse开发工具,没有类库!
for_cyan 2007-09-11
  • 打赏
  • 举报
回复
应该是这样,帮顶

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧