簡體   English   中英

捆綁的Java OS X App默認為MacRoman編碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM