Windows上的javapackager ant任务中缺少文件路径的第一个字符

时间:2018-09-09 09:20:25

标签: java inno-setup javapackager

我有一个build.xml脚本,可以在MacO上很好地构建Java应用程序。

在Windows上,它失败并显示:

Exception: java.io.FileNotFoundException: E:\ogamp-all-platforms-v2.2.4\jar\gluegen-rt-android-natives-android-armv6.jar (The system cannot find the file specified)

请注意,在“ E:\”后面缺少第一个字符。

错误似乎来自此定义:

 <fx:resources id="appRes">
        <fx:fileset dir="build" includes="EazyCNC.jar" />
        <fx:fileset dir="lib" />
        <fx:fileset dir="." includes="jogamp-all-platforms-v2.2.4/jar/*.jar" />
      </fx:resources>

我茫然不知所措,可能是错误的尝试,尝试了所有尝试,例如,如果我在路径前加上“ xxx”,则由于某种原因,我不会得到错误,并且构建成功,但是慢速释放是未包含在.exe中,并且该应用在首次访问这些库的代码点失败。

这是Eclipse 4.8.0和JDK 1.8.0_181以及Inno Setup 5.6.1的

编辑,更多信息:

如果我更改错误消息中提到的文件名(“ gluegen-rt-android-natives-android-armv6.jar”),则更改将反映在错误消息中!请注意,构建脚本中并未直接提及文件本身,而仅是父目录。因此,我的结论是,蚂蚁正确地构建了文件集,但是构建过程的其他部分未能打开文件,可能是错误地报告了文件路径。

这是否可能与以下事实有关:所有这些都发生在VirtualBox中,并且我已经将项目文件夹从MacOs主机映射到Windows E:驱动器盘符,因此它将出现在路径从“ root”目录开始该驱动器的...

2 个答案:

答案 0 :(得分:0)

Windows将反斜杠用作路径。尝试将“ /”替换为“ \”。

这应该有效:

"jogamp-all-platforms-v2.2.4\jar*.jar"

还要检查您是否正确转义了字符

Escaping File Paths in Scripts

答案 1 :(得分:0)

解决了!

如果资源文件集引用的目录是Windows磁盘的根目录,则javapackager部署任务中的某些内容似乎出错。

通过更改MacOs中的文件夹共享(和驱动器映射),以使驱动器号不指向我的项目的项目文件夹(与MacOs共享),而是引用项目文件夹的父级,现在所有作品。

换句话说,以前在我的蚂蚁脚本'。'中。完全解析后,指向驱动器“ E:”,但现在完全解析时,指向驱动器“ E:\ EazyCNC-Project”。

我不知道这是javapackager问题还是Inno Setup问题。

知道的话没什么。