Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse上导出jar的编码_Java_Eclipse_Encoding - Fatal编程技术网

Java Eclipse上导出jar的编码

Java Eclipse上导出jar的编码,java,eclipse,encoding,Java,Eclipse,Encoding,我有很多项目在家里用Mac操作系统工作,有时我用Windows操作系统 因此,在Eclipse中,我将项目的编码更改为UTF-8 但是当我导出jar或生成插件时,我想使用这些jar,似乎导出的jar不在我想要的编码中 为了进行导出,我需要将字符串外部化,当我在其他项目中导入这个库时,wit工作得很好 我是否总是需要外部化字符串来导出我的libs?JAR文件没有编码-它只是一个ZIP容器。如果您有资源文件,它们将按原样复制到JAR文件中 在程序中加载包含外部化字符串的资源文件时,可能忘记指定编码。

我有很多项目在家里用Mac操作系统工作,有时我用Windows操作系统

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

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

为了进行导出,我需要将字符串外部化,当我在其他项目中导入这个库时,wit工作得很好


我是否总是需要外部化字符串来导出我的libs?

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

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


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

JAR使用ZIP编码机制,并且:

在JAR文件中,所有文件名都必须用UTF-8编码

其他JAR元数据(MANIFEST.MF等)的名称。如果一个罐子偏离了这一点,那就是一个bug

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


有人讨论过JAR格式将在Java 7/8中转向更丰富的格式,但我没有看到任何具体的内容。

我提到了Java类中声明的字符串。在这种环境中,编码问题会发生。。。 为了不发生这种情况,我需要将字符串外部化。但我不认为这是解决方案,或者如果存在更好的方法

谢谢。

“看来导出的jar不是我想要的编码。”据我所知,Zip文件或jar扩展文件没有特定的文本编码,因为它是二进制格式。我能想到的唯一内部编码是UTF-8,用于存储存档内容的文件名。从中检索的文本文件的编码将与放入时的编码相同。