重开一贴,再论 ant 脚本关于 的使用方法

yingShisscWang 2009-11-06 01:40:46

刚才开了一个帖子,写得太乱了,问题没交代清楚。重新开一个,请帮我看看。

请看下面这个简单的例子

这是一个继承了Task类的测试类(Task是ant.jar里面的类)
这个测试类用来把当前classpath输出。(一个很简单的功能)

package com.test;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class Test extends Task{

public void execute() throws BuildException
{
String [] classPaths = System.getProperty("java.class.path").toString().split(System.getProperty("path.separator"));
System.out.println("output classpath:");
for(String str:classPaths){

System.out.println(str);
}

}
}





然后我写下面这段ant脚本来调用这个测试类



<path id="show.specific.classpath">
<pathelement location="c:/Test"/>
</path>

<taskdef name="showclasspath" classname="com.test.Test" classpathref="show.specific.classpath" classpath="c:\Test"/>

<target name="show" description="show classpath">
<showclasspath>

</showclasspath>
</target>


但是我这样子调用只能输出我在环境变量中定义了的classpath.我想自己在ant script里面设定classpath(不是环境变量中的)然后通过Test类调用来打印出来。当然这只是一个测试类,在实际的开发中我需要这个 classpath的信息去做一些其他的处理。我应该怎么在这段脚本里面设classpath?

ps:
<classpath.../>这种好像是只能用在 <javac> 标签内部的,这里不能用。
classpathref="show.specific.classpath" 这段配置可以帮助我找到com.test.Test这个类,但不知为什么,它好像不是classpath没有办法打印出来。





...全文
1044 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
time2987 2010-03-01
  • 打赏
  • 举报
回复
帮顶ING。。。正在学。。
yingShisscWang 2009-11-11
  • 打赏
  • 举报
回复
再up一记
999朵玫瑰 2009-11-07
  • 打赏
  • 举报
回复
taskdef
老张-AI 2009-11-07
  • 打赏
  • 举报
回复

友情帮顶
yingShisscWang 2009-11-07
  • 打赏
  • 举报
回复
up一记
btob 2009-11-07
  • 打赏
  • 举报
回复
没用过,还是顶一下
wifewifewife 2009-11-06
  • 打赏
  • 举报
回复
用的人少呀。帮你顶一下。
smallbear923 2009-11-06
  • 打赏
  • 举报
回复
没弄过,帮顶 。。
yingShisscWang 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 coldanimal 的回复:]
XML code<taskdefname="showclasspath" classname="com.test.Test" classpathref="classpath"/><classpathrefid="classpath"/><classpathrefid="com.test.Test"/><classpath><pathelementpath="${classes}"/></classpath>

改成

XML code<taskdefname="showclasspath" classname="com.test.Test" classpathref="classpath"/><classpathrefid="classpath"/><classpathrefid="show.specific.classpath"/><classpath><pathelementpath="${classes}"/></classpath>

写错了 妈的
[/Quote]

这个报了Reference class path not found 的错误
ps:
我原先的那个配置classpathref="show.specific.classpath"可以很准确的找到com.test.Test这个类(不加类会找不到)。所以我觉得就是应该配置在classpathref里面的。但是没有如预期般输出“c:\Test”
一头头 2009-11-06
  • 打赏
  • 举报
回复
<taskdef name="showclasspath" classname="com.test.Test" classpathref="classpath"/>

<classpath refid="classpath"/>
<classpath refid="com.test.Test"/>
<classpath>
<pathelement path="${classes}"/>
</classpath>


改成

<taskdef name="showclasspath" classname="com.test.Test" classpathref="classpath"/>

<classpath refid="classpath"/>
<classpath refid="show.specific.classpath"/>
<classpath>
<pathelement path="${classes}"/>
</classpath>


写错了 妈的
一头头 2009-11-06
  • 打赏
  • 举报
回复

<taskdef name="showclasspath" classname="com.test.Test" classpathref="classpath"/>

<classpath refid="classpath"/>
<classpath refid="com.test.Test"/>
<classpath>
<pathelement path="${classes}"/>
</classpath>


这样编译下有什么问题会?

一般classpathref是这样用的


<javac srcdir="${src}" destdir="${classes}" classpathref="classpath" debug="true"/>
JavaAlpha 2009-11-06
  • 打赏
  • 举报
回复
帮顶
swandragon 2009-11-06
  • 打赏
  • 举报
回复

还是会的人少

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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