У меня есть устаревший проект Java 6, и я хочу внести в них некоторые обновления, такие как библиотека времени Java 8. Я обнаружил, что это возможно с помощью бэкпорта ThreeTen. Но я не знаю, как использовать его с инструментом сборки Ant. Любые хорошие ссылки или примеры, пожалуйста?
Как использовать ThreeTen в проекте Ant?
Ответы (1)
Обзор:
- Загрузите JAR-файл ThreeTen Backport в папку lib вашего проекта Ant.
- Убедитесь, что файлы JAR в вашей папке lib находятся в пути к классам как для компиляции, так и для запуска (возможно, это уже так).
- В исходные файлы Java добавьте импорт из
org.threeten.bp
с подпакетами и используйте импортированные классы в своем коде.
Скачать банку
На странице http://www.threeten.org/threetenbp/ вверху выберите Релизы -> Скачайте, чтобы попасть в репозиторий Maven. В первом результате поиска (в настоящее время threetenbp 1.3.6 от 10 июля 2017 г.) в столбце «Загрузка» нажмите jar. Загрузите файл (в данном случае threetenbp-1.3.6.jar) или переместите его в папку lib вашего проекта Ant. Или где у вас есть внешние JAR-файлы. Если у вас нет такого места, создайте для него папку с именем 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.time в вашей программе 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, но думаю, что и в других версиях то же самое.
Источник и дальнейшее чтение
Я использовал учебник Ant здесь, в частности раздел Использование внешних библиотек.