У меня возникла проблема, когда мне нужно распространять свое приложение java, созданное с помощью NetBeans 6.8. У меня есть некоторые файлы перевод, сделанные с gettext, как файлы класс - сделано с msgfmt из GetText пакета с помощью следующего сценария (сценарий оболочки не работать под MSYS - никаких проблем здесь)ResourceBundles вне файла jar
PO_FILES=`find . -iname "*_*.po"`
rm -f *.class
for PO_FILE in $PO_FILES; do
CLASS_NAME=`echo $PO_FILE | sed "s/\.po$//" | sed "s/^.*\///"`
echo "Compiling $PO_FILE to class $CLASS_NAME"
msgfmt --java2 $PO_FILE -r $CLASS_NAME -d .
done
Вот структура каталога:
main.jar
lib/translate/Messages_fr$1.class
lib/translate/Messages_fr.class
lib/*.jar (many needed libraries - they work)
файл манифеста имеет следующий класс-путь:
lib/xxx.jar ... lib/translate ... lib/yyy.jar (jar files are not the problem)
Приложение работает без каких-либо проблем, за исключением файлов перевода, которые не могут быть загружены. Загрузочная часть заключается в следующем (клиент хочет французский перевод):
Locale.setDefault(Locale.FRANCE);
myResources = ResourceBundle.getBundle("Messages");
Примечания: Эта проблема появляется только при попытке запустить с файлом баночки (работаю с NetBeans работает хорошо, работает из командной строки скомпилированных классов работаю также, но не при запуске файла jar (java -jar main.jar).
Самое смешное, что у меня нет этой проблемы, если я изменю путь класса из файла манифеста и добавлю «.». путь к пути к классам и имеющий эту структуру каталогов:
main.jar
lib/translate/Messages_fr$1.class
lib/translate/Messages_fr.class
lib/*.jar (many needed libraries - they work)
Messages_fr$1.class
Messages_fr.class
Я использую Windows, со следующими версиями Java:
C:\>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
D:\Program Files\Java\jdk1.6.0_17\bin>java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
Я признателен за любую помощь, как это становится сложно.
Спасибо,
Юлиан
Вы не поверили бы этому ... addding a/("lib/translate /" вместо "lib/translate") в файле манифеста заставляет материал работать ... Как я могу сделать это из файлов ant xml? – INS