[英]How to run java application bundled to .app on Mac OS X in 32 bit mode?
[英]Bundled Java OS X App Defaults to MacRoman Encoding
我在Eclipse中設置了Java項目以使用UTF-8編碼。 當我在IDE中運行代碼時,它將與UTF-8一起運行。 但是,當我將Java項目捆綁到OS X應用程序中並從那里運行它時,如Charset.defaultCharset()
所確認,Java代碼是使用MacRoman運行的。
如何使捆綁的OS X應用程序在UTF-8中運行?
該答案指出,字符編碼由JVM啟動時確定。 如果是從命令行運行的,則可以通過添加運行時參數-Dfile.encoding=UTF-8
來設置UTF-8編碼。
由於這是在捆綁的應用程序中運行的,因此您無法在終端中添加此參數。 幸運的是,Apple在啟動捆綁的應用程序時非常容易以另一種方式輸入上述參數。
首先,使用文本編輯器(TextEdit可以工作)打開應用程序捆綁包中的Info.plist文件(右鍵單擊應用程序並選擇“顯示包內容”,然后打開“內容”文件夾)。 您將看到一個類似於以下內容的部分:
<key>Java</key>
<dict>
<key>JVMVersion</key>
<string>1.5+</string>
<key>MainClass</key>
<string>com.yourCompanyName.YourApplication</string>
<key>Properties</key>
<dict>
<key>apple.laf.useScreenMenuBar</key>
<string>true</string>
</dict>
<key>VMOptions</key>
<string>-Xmx512m</string>
</dict>
導入部分是<key>Properties</key>
部分。 如果不存在,請創建它,並在它下面直接創建<dict>
。 在<dict>
標簽之間添加以下鍵和值:
<key>file.encoding</key>
<string>UTF-8</string>
為了將來的教學,您可以通過這種方式添加任何系統屬性。 如果您在此答案的開頭具有類似的參數,只需將前導-D
放下,在<key>
中將等號之前的部分放在<string>
,將等號之后的部分放入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.