Отсутствует первый символ пути к файлу в задаче javapackager ant в Windows

У меня есть скрипт build.xml, который прекрасно создает мое Java-приложение на MacOs.

В 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: так, чтобы она отображалась, когда путь начинается с корневого каталога этого диска....

2 ответа

Решил это!

Похоже, что-то в задаче развертывания javapackager идет не так, если набор файлов ресурсов ссылается на каталог, являющийся корнем диска Windows.

Изменив общий доступ к моей папке из MacO (и сопоставление диска), чтобы буква диска НЕ ​​ссылалась на папку проекта моего проекта (которая является общей для MacO), а вместо этого ссылалась на родителя папки проекта, теперь все работает.

Другими словами, ранее в моем скрипте муравья '.' при полном разрешении ссылается на диск "E:", но теперь ".", при полном разрешении ссылается на "E:\EazyCNC-Project".

Я не знаю, это проблема javapackager или проблема Inno Setup.

Ничего страшного, если вы это знаете.

Windows использует обратную косую черту для путей. Попробуйте заменить '/' на '\'.

Это должно работать:

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

Также проверьте, правильно ли вы экранировали символы

Экранирование путей к файлам в скриптах

Другие вопросы по тегам