使用 ANT 编译 JavaFX 代码

2023-11-27

我的系统上安装了以下内容 -

 Java version "1.7.0_09"
 JavaFX 2.0 SDK 
 NetBeans 7.2.1

当我尝试使用 ANT 编译代码时,它显示错误消息 -

Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found. 

Build.XML 包含

<project name="XYZ"  default="XYZ" basedir="XYZ" xmlns:fx="javafx:com.sun.javafx.tools.ant">
    <description>
        simple example build file
    </description>

  <!-- set global properties for this build -->
    <property name="srcXYZGenerator" location="src/XYZGenerator"/>


    <property name="classpath" location="lib/XYZLib.jar;lib/ABC.jar;lib/IJK.jar;"/>


    <target name="init">
        <!-- Create the time stamp -->
        <tstamp/>
        <!-- Create the build directory structure used by compile -->
        <mkdir dir="${buildXYZ}"/>  

    </target> 

    <target name="XYZ" depends="init">
    <!-- Compile the java code from ${src} into ${build} -->
    <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
    uri="javafx:com.sun.javafx.tools.ant" classpath=".:C:\Program Files\Java\jdk1.7.0_09\lib\ant-javafx.jar"/>
    <javac classpath="${classpath}" srcdir="${srcXYZ}" destdir="${buildXYZ}"/>
    </target>


</project>  

其他编译错误:

[javac] C:\Users\JavaUser4\Desktop\XYX2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:19: error: package javafx.scene does not exist
[javac] import javafx.scene.Node;
[javac]                    ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:20: error: package javafx.scene.control does not exist
[javac] import javafx.scene.control.Button;
[javac]                            ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:21: error: package javafx.scene.control does not exist
[javac] import javafx.scene.control.Label;
[javac]                            ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:22: error: package javafx.scene.input does not exist
[javac] import javafx.scene.input.MouseEvent;

Java 8 更新

在 Oracle Java 8 中,jfxrt.jar默认情况下位于类路径上,因此您不需要按照此答案中的描述将其显式添加到类路径中。添加jfxrt.jar仅 Java 7 才需要添加到类路径。


编译问题是因为jfxrt.jar from jre\lib未在类路径中设置。

导致taskdef错误的原因是指定的路径ant-javafx.jar值不指向文件系统上的有效文件。

我认为使用 a 也可能存在问题:而不是一个;在分离路径和使用中/而不是\指定路径,但 ant 似乎对这些事情很宽容,所以它们可能根本不重要。

我创建了一个示例项目基于对我有用的构建脚本的稍作修改的版本(没有taskdef警告,也没有编译错误)。它是为jdku9 windows 64位设置的。如果您使用不同版本的jdk,则需要适当调整脚本中的路径。检查您安装的 jdk 的版本 - 如果是 64 位,则使用C:\Program Files\Java\...,如果是32位那么你使用C:\Program Files (x86)\Java\...

示例项目的最终应用程序可以使用以下命令执行:

java -classpath "c:\Program Files (x86)\Java\jdk1.7.0_09\jre\lib\jfxrt.jar;XYZ\lib\ScenicView.jar;XYZ\build\XYZ" FriendFinder

请注意,示例中的构建脚本非常基本,实际上只是作为入门脚本提供以帮助您继续。你也过得最好添加ant任务以进行进一步的部署任务 (like fx:deploy)以确保正确打包的应用程序支持点击运行 jar 等功能。或者使用 NetBeans 并让它为您生成适当的 ant 构建文件。

我用来构建的修改后的 Ant 脚本(使用蚂蚁1.8.4)我链接的示例应用程序是:

<project name="XYZ" default="XYZ" basedir="XYZ" xmlns:fx="javafx:com.sun.javafx.tools.ant">    
    <property name="srcXYZ" location="src/XYZ"/>
    <property name="buildXYZ" location="build/XYZ"/>    
    <property name="classpath" location="C:\Program Files (x86)\Java\jdk1.7.0_09\jre\lib\jfxrt.jar;lib\ScenicView.jar"/>

    <target name="init">
        <tstamp/>
        <mkdir dir="${buildXYZ}"/>  
    </target> 

    <target name="XYZ" depends="init">
        <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
    uri="javafx:com.sun.javafx.tools.ant" classpath=".:C:\Program Files (x86)\Java\jdk1.7.0_09\lib\ant-javafx.jar"/>    
        <javac includeantruntime="false" classpath="${classpath}" srcdir="${srcXYZ}" destdir="${buildXYZ}"/>
    </target>
</project>  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ANT 编译 JavaFX 代码 的相关文章

随机推荐

  • Airplay 按钮未显示在 AVPlayer 的播放器控件中

    我使用 AVPlayer 和 AVPlayerViewController 创建了一个视频播放器 我已经设定 allowsExternalPlayback 财产至真也 usesExternalPlaybackWhileExternalScr
  • apk (.apk) 和应用程序包 (.aab) 之间的区别

    最近谷歌推出了一个新功能app bundle这与 APK 的概念非常相似 除了灵活性和架构差异之外 我阅读了很多博客 文章来了解应用程序包与 APK 文件相比如何在设备中工作 App Bundle 的实际内部工作流程是什么 它如何在从 Go
  • 将标记替换为 html 内容

    我一直在搜索 Google Map API V3 文档 但找不到任何方法来使用我自己的 html 内容而不是图像在地图上创建自定义图标 我想显示一个动态标记 可以显示文本或我想要的任何内容 例如 div class marker Dynam
  • Java打印包含多个整数的字符串

    今天刚开始学习java 似乎无法弄清楚这一点 我正在关注 learnjavaonline org 上的教程 该教程会教您一些内容 然后要求您编写代码来执行特定操作 然后检查输出以查看其是否正确 问题是 如果它不正确 它不会说明原因 也不会为
  • Anaconda 安装后运行 pyinstaller 会导致 ImportError: no Module named 'pefile'

    I did conda install c acellera pyinstaller 3 2 3 as per Anaconda 的网站看起来它安装正确 但如果我尝试通过 cmd 运行它 我会得到以下信息 C Users Cornelis
  • 增加该值(如果存在),否则在 DynamoDB 中添加新条目

    我有一个 DynamoDB 表 其列和主键为ipAddress IP地址 visits 我从我的 React 网站获取用户的 IP 地址 并通过 Lambda 函数和 API Gateway POST 请求将其插入到 DynamoDB 如果
  • UIImages 的图像尺寸是 1024 x 1024?

    苹果文档指出 您应该避免创建大于 1024 x 的 UIImage 对象 大小为 1024 除了大量的内存之外 这样的图像还会 消耗 使用图像作为纹理时可能会遇到问题 在 OpenGL ES 中或将图像绘制到视图或图层时 这个尺寸 如果您正
  • Boost.Test 检查指针是否为空

    我有以下测试 BOOST CHECK NE pointer nullptr 编译失败的原因是 xxx include boost test tools detail print helper hpp 50 14 错误 operator 出了
  • 如果Java中的反射会减慢命令的执行速度,为什么还有这么多框架使用它?

    根据我的理解 使用 Java 反射 API 会按命令减慢代码执行速度 但后来我看到它在 Java 世界的很多地方都在使用 仅举几例 注释 Spring框架 AOP 休眠 MyBatis 这意味着我错过了一些关于 java 反射 又名优化技术
  • 使用 PostGIS 配置 Amazon Elastic Beanstalk

    有谁有使用 PostGIS 设置 Amazon Elastic Beanstalk 的经验 以便我可以利用 Geodjango 默认设置 RDS 以 MySQL 为特色 当前不支持开箱即用的许多功能 1 PostgreSQL PostGIS
  • 如何在 django 中验证 json 对象

    我正在使用 AJAX 向 django 视图提交 JSON JSON 如下所示 code 9910203040 required name Abc required payments amount 300 required name efg
  • winform 友好的类名

    我有一个 C winform 应用程序 当使用间谍 时 它给出 WindowsForms10 Window 8 app 0 33c0d9d 作为类名 有没有办法将其更改为更友好的内容 没有 最后一个十六进制数字是拥有该窗口的 AppDoma
  • 如何在 vim 中删除下一个字符(不是当前字符!)?

    我经常发现自己需要删除光标后面的字符 而不是当前字符 在 vim 的正常模式下执行此操作的最短方法是什么 lx会成功 或者lxh如果您想将光标返回到原始位置 它只是向前移动光标并删除其下方的字符 如果这还不够短 您可以将其映射到单个按键 m
  • Linux集群,如何“仅仅”锁定一个文件?

    在 Bash 中 我试图使函数 getLock 与不同的锁名称一起使用 function getLock getLock FILE 1 getLock OP 2 case getLock OP in LOCK UN flock u getL
  • 如何表示当前英国时间?

    我在服务器和客户端之间转换日期时遇到问题 两者都在德国运行 客户端计算机上的区域设置可以设置为英国或德国 我从服务器收到一个 CET 格式的日期 我需要在 UI 上将此时间表示为英国时间 例如 从服务器收到的时间 如 01 07 2010
  • Jenkins/fastlane - 没有找到本地代码签名身份

    我在使用 Jenkins 的 fastlane 时遇到问题 在终端中运行此命令有效fastlane provide crashlytics build testing false check xcode false env xxx 但是詹金
  • C OpenMP 并行快速排序

    在 C 中使用 openMP 时 我再次陷入困境 这次我尝试实现并行快速排序 Code include
  • 如何在 PHP 中将日期加 1(日/年)?

    我有一个日期存储在数组中 this gt lines uDate 日期的格式不固定 我可以这样改变 define DATETIME FORMAT y m d H i 如何将我的 uDate 添加一定的天数或年数 我的问题与此相关 将日期增加
  • 如何隐藏一些 Eclipse 自动完成结果[重复]

    这个问题在这里已经有答案了 我正在 Eclipse 3 6 中开发 Wicket 应用程序 有没有办法阻止 Eclipse 自动完成中的某些包 以便我看不到对同名的不需要的 AWT 类的建议 我想看看org apache wicket结果如
  • 使用 ANT 编译 JavaFX 代码

    我的系统上安装了以下内容 Java version 1 7 0 09 JavaFX 2 0 SDK NetBeans 7 2 1 当我尝试使用 ANT 编译代码时 它显示错误消息 Could not load definitions fro