是否可以在没有终端的情况下运行以unicode编码的应用程序?

时间:2015-10-16 17:42:32

标签: java unicode jvm command-line-interface

我有一个带有菜单,项目,标签等的GUI应用程序。它们的可见名称包含unicode字符。现在,我需要使用unicode字符正确显示此应用程序。如果我运行jar,java使用默认的系统编码,这不是unicode。我可以通过将参数 -Dfile.encoding = UTF-8 添加到带有-jar <app.jar>的命令行来解决此问题。但是,让我们说我想给某人一个罐子,他打开CMD并将一些参数传递给java可能是愚蠢的。实际上,java vm是一个启动参数做大事的程序。 Java应用程序在java vm中运行。由于manifest.mf传递给jvm参数,该参数是关于将要执行的程序的main方法的路径,为什么我们没有例如manifest.mf文件中的函数,一个将用于的args数组运行应用程序时的jvm。我知道java更习惯于制作实用程序,而GUI应用程序则有C,但java是一种很棒的语言,除了虚拟机的一些缺点。我知道我的主程序将打开带有适当参数的新java vm并在那里运行应用程序。然后,自杀。我也知道将jar包装到exe,所以exe文件将运行jvm和app,但随后我松散了多平台的可压缩性。谢谢你的回答。希望我在这里写的一些想法毫无用处。

1 个答案:

答案 0 :(得分:0)

这里有几个问题,但是让我给你一个总体指导:

  1. 当您打包JAR时,JAR文件中的元数据(例如清单的条目名称,注释和内容)必须以UTF8编码(对于标签等保持相同...)。无论您是使用命令行实用程序还是某些IDE打包JAR,都是如此。因此,首先检查带有标签等的文件是否为UTF8编码。

  2. 您自己的操作系统可能有非unicode设置。因此,当您使用标签编辑和保存.properties(或其他)文件时,它们实际上不会保存在UTF8中。

  3. 如果您打包“可启动”JAR,只要您在JAR中有UTF-8标签就可以使用UTF-8。

  4. 还要看看这个问题:How to Force a jar to uses(or the jvm runs in) utf-8 instead of the system's default encoding

相关问题