0

我有一个 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”,那么由于某种原因我没有收到错误并且构建成功,但 jogamp 库不包含在.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: 驱动器号,因此它会显示为路径从该驱动器的“根”目录开始...

4

2 回答 2

0

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

这应该有效:

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

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

转义脚本中的文件路径

于 2018-09-09T10:25:16.887 回答
0

解决了!

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

通过从 MacOs(和驱动器映射)更改我的文件夹共享,以便驱动器号不引用我的项目的项目文件夹(从 MacOs 共享),而是引用项目文件夹的父级,现在一切正常。

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

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

如果你知道的话,没什么大不了的。

于 2018-09-09T13:04:24.730 回答