Java jar文件外部的ResourceBundles

Java jar文件外部的ResourceBundles,java,jar,gettext,resourcebundle,Java,Jar,Gettext,Resourcebundle,当我需要分发使用NetBeans 6.8创建的java应用程序时,我面临一个问题。我有一些用gettext作为类文件制作的翻译文件-用下面脚本的gettext包中的msgfmt制作(shell脚本在msys下运行-这里没有问题) 以下是目录结构: main.jar lib/translate/Messages_fr$1.class lib/translate/Messages_fr.class lib/*.jar (many needed libraries - they work) mai

当我需要分发使用NetBeans 6.8创建的java应用程序时,我面临一个问题。我有一些用gettext作为类文件制作的翻译文件-用下面脚本的gettext包中的msgfmt制作(shell脚本在msys下运行-这里没有问题)

以下是目录结构:

main.jar
lib/translate/Messages_fr$1.class
lib/translate/Messages_fr.class 
lib/*.jar (many needed libraries - they work)
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
清单文件具有以下类路径:

lib/xxx.jar ... lib/translate ... lib/yyy.jar (jar files are not the problem)
除了无法加载的翻译文件外,应用程序的工作没有任何问题。加载部分如下(客户需要法文翻译):

注意:这个问题只在尝试运行jar文件时出现(从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)
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)
我感谢任何帮助,因为这会让人沮丧

谢谢,


Iulian

实际问题(如注释中所述)是jar文件的类路径中缺少/。例如,只有这样的路径:path/myPath是不够的。我需要添加一个/(path/myPath/)来解决实际问题(如注释中所述)jar文件的类路径中缺少/。例如,只有这样的路径:path/myPath是不够的。我需要添加一个/(path/myPath/)以使其工作

你不会相信……添加一个/(“lib/translate/”而不是“lib/translate”)在清单文件中使内容工作…我如何从ant xml文件中做到这一点?你不会相信…在清单文件中添加一个/(“lib/translate/”而不是“lib/translate”)使内容工作…我如何从ant xml文件中做到这一点?