在Eclipse上编码导出的jar

时间:2011-01-25 18:36:29

标签: java eclipse encoding

我有许多项目可以在家中使用Mac OS,有时我会使用Windows进行操作。

因此,在Eclipse中,我将项目的编码更改为UTF-8。

但是当我导出jar或生成插件时,我想使用这些jar,似乎导出的jar不在我想要的编码中。

要进行导出,我需要外化字符串,当我在其他项目中导入这个lib时,机智效果很好。

我是否需要始终外部化字符串以导出我的库?

3 个答案:

答案 0 :(得分:0)

JAR文件没有编码 - 它只是一个ZIP容器。如果您有资源文件,它们将被复制到JAR文件中。

您可能忘记在程序中加载包含外化字符串的资源文件时指定编码。在这种情况下,使用默认编码,其在不同平台上是不同的。

因此,如果您可以更改资源加载源代码,请检查它是否使用特定编码。如果您无法更改资源加载源,则必须转换资源文件的编码。

答案 1 :(得分:0)

JAR使用ZIP编码机制和mandates that

  

在JAR文件中,所有文件名必须以UTF-8编码进行编码。

其他JAR元数据的spec mandates the encoding(MANIFEST.MF等)。如果JAR偏离此,那就是一个错误。

如果您指的是JAR中的其他资源,开发人员有责任确保使用正确的编码保存和加载这些文件。

有一些讨论认为JAR格式将在Java 7/8中转移到更丰富的格式,但我没有看到任何具体的内容。

答案 2 :(得分:0)

我指的是在Java Classes中声明的字符串。在这种环境中出现编码问题...... 为了不发生,我需要外化字符串。但我不认为这是解决方案,或者它是否存在更好的方法。

感谢。