当我需要分发使用netbeans6.8创建的java应用程序时,我遇到了一个问题。我有一些用gettext作为类文件制作的翻译文件-用下面脚本的gettext包中的msgfmt制作(shell脚本在msys下运行-这里没有问题)
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");
有趣的是,如果我修改清单文件中的类路径,并将“.”路径添加到类路径,并且具有以下目录结构,我就不会有这个问题:
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
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)
我感谢任何帮助,因为这变得令人沮丧。
非常感谢。