Отсутствует первый символ пути к файлу в задаче javapackager ant в Windows - PullRequest
0 голосов
/ 09 сентября 2018

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

В 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 ]

0 голосов
/ 09 сентября 2018

Решил!

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

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

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

Я не знаю, является ли это проблемой javapackager или, возможно, проблемой установки Inno.

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

0 голосов
/ 09 сентября 2018

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

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

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

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

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

...