Java 如何在Ant项目中使用ThreeTen?

Java 如何在Ant项目中使用ThreeTen?,java,datetime,ant,dependency-management,threetenbp,Java,Datetime,Ant,Dependency Management,Threetenbp,我有一些遗留的Java6项目,我想对它们进行一些更新,比如Java8时间库。我发现使用Three-Ten backport是可能的。但我不知道如何将它与Ant构建工具一起使用。有什么好的参考资料或例子吗 概述: 将ThreeTen Backport JAR文件下载到Ant项目的lib文件夹中 确保lib文件夹中的JAR文件位于编译和运行的类路径上(可能已经是这种情况) 在Java源文件中,添加从org.threeten.bp导入的子包,并在代码中使用导入的类 下载JAR 在上,在顶部选择Rele

我有一些遗留的Java6项目,我想对它们进行一些更新,比如Java8时间库。我发现使用Three-Ten backport是可能的。但我不知道如何将它与Ant构建工具一起使用。有什么好的参考资料或例子吗

概述:

  • 将ThreeTen Backport JAR文件下载到Ant项目的lib文件夹中
  • 确保lib文件夹中的JAR文件位于编译和运行的类路径上(可能已经是这种情况)
  • 在Java源文件中,添加从
    org.threeten.bp
    导入的子包,并在代码中使用导入的类
  • 下载JAR 在上,在顶部选择Releases->Download以访问Maven存储库。在第一个搜索结果中(从2017年7月10日起,目前为threetenbp 1.3.6),在下载栏中单击。将文件(在本例中为threetenbp-1.3.6.jar)下载到或移动到Ant项目的lib文件夹中。或者你的外部罐子在哪里。如果您还没有这样一个地方,请为它创建一个名为lib的文件夹

    修正你的类路径 如果您以前没有以程序使用的外部JAR文件的形式获得任何外部依赖项,那么您可能需要为这些文件准备
    build.xml
    文件。在我的
    build.xml
    中,我添加了

    <property name="lib.dir"     value="lib"/>
    
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>
    

    当我从Ant(在欧洲/哥本哈根时区的计算机上)运行时,我得到:

    我使用了Ant1.9.7,但我认为在其他版本中也是一样的

    资料来源和进一步阅读
    我特别使用了。

    在某些情况下,这是一个后续问题。霍斯和我在网上搜索,没有找到任何指南或例子。我真不敢相信这之前没有做过几次。你能不能从Maven central中取出jar并将其添加到构建文件中?
    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
    </target>
    
    <target name="run" depends="jar">
        <java fork="true" classname="${main-class}">
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
        </java>
    </target>
    
    package ovv.ant.threetenbp;
    
    import java.util.Date;
    
    import org.threeten.bp.Instant;
    import org.threeten.bp.DateTimeUtils;
    
    public class AntAndThreeTenBackportDemo {
    
        public static void main(String... commandLineArguments) {
            Instant once = Instant.parse("1939-11-19T16:30:00Z");
            Date oldfashionedDateObject = DateTimeUtils.toDate(once);
            System.out.println("As Date: " + oldfashionedDateObject);
        }
    
    }
    
    run:
         [java] As Date: Sun Nov 19 17:30:00 CET 1939