Существует расширение Ant для VSCode с именем Ant Target Runner .
После его установки вы можете открыть свой проект JavaFX, содержащий файл build.xml
в корневом каталоге..
Мне удалось немного изменить вышеописанную сборку, чтобы добавить цель run
и запустить HelloFX
из здесь .
<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloFX" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant">
<property name="src.dir" value="src"/>
<property name="lib.dir" value="/Users/user/Downloads/javafx-sdk-12.0.1/lib"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<property name="build.dir" value="bin"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="hellofx.Main"/>
<property environment="env"/>
<target name="clean">
<!-- Verify that JDK is 11+ -->
<echo message="JAVA_HOME is set to = ${env.JAVA_HOME}" />
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac includeantruntime="false" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" modulepath="/Users/user/Downloads/javafx-sdk-12.0.1/lib">
<compilerarg line="--add-modules javafx.controls,javafx.fxml"/>
</javac>
<copy todir="${classes.dir}">
<fileset dir="src"
includes="**/*.fxml,**/*.properties,**/*.css" />
</copy>
</target>
<target name="run" depends="jar">
<java fork="true" modulepath="/Users/user/Downloads/javafx-sdk-12.0.1/lib" jar="${jar.dir}/${ant.project.name}.jar">
<jvmarg line="--add-modules javafx.controls,javafx.fxml"/>
</java>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
</project>
Каждый раз, когда вы изменяете файл и сохраняете его, целевая панель муравья перезагружается и отображаются цели:
Если вы запускаете любой изцели, выходные данные отображаются в терминале.
Убедитесь, что выбран JDK 11+ (я добавил эхо к цели clean
).Если это не так, вы можете установить его непосредственно с того же терминала (export JAVA_HOME=...
).
Затем вы можете запустить цель run
и заставить приложение работать:
Обратите внимание, что, хотя это работает нормально, будет удобнее использовать инструменты сборки, такие как Maven или Gradle.
Получение IDE для использования библиотеки JavaFX
По умолчанию вы получите предупреждающее сообщение Classpath is incomplete
, и для классов JavaFX нет автозаполнения.
Так как VSCode ожидает Maven pom.xml
илиФайл Eclipse .classpath
, я собираюсь добавить последнее:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/classes" path="src/">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="false"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/Users/user/Downloads/javafx-sdk-12.0.1/lib/javafx.base.jar"/>
<classpathentry kind="lib" path="/Users/user/Downloads/javafx-sdk-12.0.1/lib/javafx.graphics.jar"/>
<classpathentry kind="lib" path="/Users/user/Downloads/javafx-sdk-12.0.1/lib/javafx.controls.jar"/>
<classpathentry kind="lib" path="/Users/user/Downloads/javafx-sdk-12.0.1/lib/javafx.fxml.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-12">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
</classpath>
И это, похоже, решает проблемы с синтаксисом JavaFX и автозаполнением.Обратите внимание, что для этого может потребоваться установка Eclipse.
Наконец, вы можете добавить то же launcher.json
, что и в здесь , так что вымогу запустить приложение напрямую, без задач ant (хотя я так понимаю, это не ваша цель).