Отсутствует первый символ пути к файлу в задаче 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"
Также проверьте, правильно ли вы экранировали символы