我有一個GUI菜單,項目,標籤等應用程序。它們的可見名稱包含unicode字符。現在,我需要用unicode字符正確顯示此應用程序。如果我運行jar,java使用默認系統編碼,而不是unicode。我可以通過將一個參數-Dfile.encoding = UTF-8添加到帶有-jar <app.jar>
的命令行來解決此問題。但是,讓我們說我想給某人一個jar,他可能會愚蠢地打開CMD並將一些參數傳遞給java。實際上,Java虛擬機是一個程序,啓動參數做大事情。 Java應用程序在Java虛擬機中運行。由於manifest.mf將jvm參數傳遞給將要執行的程序的main方法的路徑,爲什麼我們沒有例如manifest.mf文件中的函數,這是一個arv數組,它將在jvm中使用正在運行應用我知道java更習慣於製作實用的東西,而GUI應用程序則有C,但java是一門偉大的語言,除了虛擬機的一些缺點之外。我對我的主程序有一個想法,它會用適當的參數打開新的java vm並在那裏運行應用程序。然後,自殺。我也知道關於包裝jar以exe文件,所以exe文件將運行jvm和應用程序,但後來我鬆散多平臺壓縮。感謝您的回答。希望我沒有寫在這裏somethink無用。是否有可能運行我的應用程序編碼unicode沒有終端?
0
A
回答
0
幾個問題在這裏,但讓我給你一個總體指導:
當你收拾一個JAR中,JAR文件的元數據,如條目名稱,註釋和清單的內容,必須以UTF8編碼(對於標籤等等)。無論您使用命令行工具還是某些IDE打包JAR,情況都是如此。所以首先檢查你的帶有標籤等的文件是否是UTF8編碼的。
您的操作系統可能有非Unicode設置。所以當你編輯和保存標籤的.properties(或其他)文件時,它們實際上不會以UTF8保存。
如果您打包「可啓動」JAR,只要您在JAR內部有UTF-8標籤,就應該使用UTF-8。
看一看這一問題也:How to Force a jar to uses(or the jvm runs in) utf-8 instead of the system's default encoding
+1
屬性文件使用'ISO Latin-1'又名'ISO 8859-1'存儲,參見['Properties.load'](http://docs.oracle.com/javase/8/docs/api/java/util /Properties.html#load-java.io.InputStream-)... – Holger
相關問題
- 1. 通過我的應用程序運行沒有終端的守夜?
- 2. 是否有可能在啓動時運行AIR應用程序?
- 3. 是否有Golang終端外殼?編譯語言是否可能?
- 4. 是否有可能在沒有「編輯」菜單項的可可應用程序中具有「編輯」功能?
- 5. 是否有可能從android應用程序運行android應用程序?
- 6. 是否有可能將正在運行的應用程序「轉移」到另一個終端/用戶?
- 7. 是否有可能在運行時反編譯程序
- 8. 當我執行我的Android應用程序,是否有可能知道多少內存佔用運行程序
- 9. 我想運行一個程序,而不使用終端 - 是否有可能?怎麼樣?
- 10. 是否有可能編譯.NET 2個WinForms應用程序對.NET 4運行,如果沒有安裝.NET 2?
- 11. 我的應用程序沒有運行,但沒有錯誤
- 12. 是否有可能將Cocos2d iphone整合到我編碼的現有程序中?
- 13. 如何在沒有終端的Windows中運行py2exe程序?
- 14. 是否有可能在C#中爲Android編寫應用程序?
- 15. 是否有可能在android應用程序中注入代碼?
- 16. 是否有可能在Heroku上爲Facebook應用程序運行一個進程?
- 17. 是否有可能通過android應用程序更改unicode的字體
- 18. 是否有可能停止執行運行asp程序?
- 19. 是否可以在沒有GNOME的情況下運行GTK +應用程序?
- 20. 是否有可能編譯運行時沒有運行庫lib的代碼?怎麼樣?
- 21. 是可以跟蹤即使應用程序沒有運行
- 22. 是否有可能在沒有打開應用程序的情況下在android上運行日常任務?
- 23. 我的應用程序沒有在我的手機上運行?
- 24. 是否有可能沒有應用程序服務器的JMS服務器?
- 25. C++代碼只能在終端運行程序時執行
- 26. 是否有可能在電子郵件中運行某種小應用程序?
- 27. 是否有可能在android和iphone中運行單個應用程序
- 28. 是否有可能無法在web應用程序項目上運行發佈
- 29. 是否有可能在iphone,ipod,ipad和mac中運行iphonic應用程序?
- 30. 是否有可能在MVC部分視圖中運行AngularJS應用程序
「爲GUI應用有C」 - 大LOL。但是,嚴肅地說,你應該讀取屬性'file.encoding'的名字並且一遍又一遍地閱讀它,考慮它想要告訴你什麼。在你多次讀取名字後,它是否仍然讓你感到驚訝,當我現在告訴你它與GUI沒有任何關係時? – Holger
是的,我明白了。我只想說,通過在C中編寫應用程序,我可以完全控制我的程序,並且虛擬機不會限制我。我想如果我有CLI應用程序,我應該定義我的自定義流和編碼。但是如何在GUI中使用一些庫。 –
看來你還是不明白這一點。沒有理由混淆這個屬性;它與GUI應用程序完全無關。 GUI庫使用unicode。如果你沒有在你的代碼中指定一個編碼*,那麼這個相關的唯一地方就是(文件)I/O *。沒有函數會強制您使用系統的默認編碼,對於處理該默認編碼的每個函數,都有一個接受編碼作爲參數的替代方法。如果您的應用程序不想使用默認編碼,則不需要。你的問題是*不*你有一個GUI。 – Holger