有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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


共 (1) 个答案

  1. # 1 楼答案

    概述:

    1. 将Three-Ten Backport JAR文件下载到Ant项目的lib文件夹中
    2. 确保lib文件夹中的JAR文件位于编译和运行的类路径上(可能已经是这样)
    3. 在Java源文件中,使用子包从org.threeten.bp添加导入,并在代码中使用导入的类

    下载JAR

    http://www.threeten.org/threetenbp/上,在顶部选择Releases->;下载以访问Maven存储库。在第一个搜索结果中(目前是2017年7月10日的threetenbp 1.3.6),在下载栏中单击jar。将文件(在本例中为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>
    

    这定义了lib文件夹和类路径的名称,供以后使用。请注意,我指定.jar文件夹中的所有lib文件及其子文件夹都位于类路径上,因此将来您只需将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>
    

    我们需要修复这两个目标,因为编译和运行都需要外部JAR

    使用java。Java程序中的时间类

    这是我的节目。注意import语句指的是org.threeten.bp

    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);
        }
    
    }
    

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

    run:
         [java] As Date: Sun Nov 19 17:30:00 CET 1939
    

    我使用了Ant 1.9.7,但我认为在其他版本中也是一样的

    来源和进一步阅读

    我用了the Ant tutorial here,尤其是the Using External Libraries section