添加到Java类路径会破坏蚁群



我希望在我的类路径中有一个特定的JAR,以便使用Jython REPL轻松访问。所以我在。bashrc中输入:

export CLASSPATH=:/home/tmacdonald/path/to/jar/thing.jar

然而,这破坏了编译的ant,即JAR可以从不同的子包编译JAR:

$ ant jar
Invalid implementation version between Ant core and Ant optional tasks.
 core    : 1.8.0 in file:/usr/share/ant/lib/ant.jar
 optional: 1.5.1 in file:/home/tmacdonald/path/to/jar/lib/gt2-2.3.3/ant-optional-1.5.1.jar
$ echo $CLASSPATH
:/home/tmacdonald/path/to/jar/thing.jar

改变类路径修复它:

$ export CLASSPATH=
$ !ec
echo $CLASSPATH
$ ant jar
[Compiles successfully.]

但是,根据我是想运行ant还是Jython REPL而不断更改类路径似乎很尴尬,也不是正确的事情。我承认我对蚁类和类路径的了解相当薄弱。我只是认为类路径是:"Java库的PATH;或者PYTHONPATH for Java",而且我只对继承的现有ant配置文件进行小的修改——我从来没有设置过。

所以我很想知道到底发生了什么(顺便说一下,这是如何导致我的问题的),这样我就可以得到更多的教育,当然我也想要一个解决方案。谢谢!

我认为Ant不应该知道或关心环境变量。正确的方法是在Ant build.xml中设置CLASSPATH。

以下是我在Ant build.xml文件中使用的生产和测试类路径:
<path id="production.class.path">
    <pathelement location="${production.classes}"/>
    <pathelement location="${production.resources}"/>
    <fileset dir="${production.lib}">
        <include name="**/*.jar"/>
    </fileset>
</path>
<path id="test.class.path">                            
    <path refid="production.class.path"/>
    <pathelement location="${test.classes}"/>
    <pathelement location="${test.resources}"/>
    <fileset dir="${test.lib}">
        <include name="**/*.jar"/>
    </fileset>
</path>

如您所见,没有对${classpath}的引用,也不应该有。

相关内容

  • 没有找到相关文章

最新更新