我有一個試圖使用不再支持的語言環境設置的供應商Applet。供應商Applet中的Java語言環境問題
德編譯的代碼如下
String s1 = System.getProperty("java.version");
String s2 = System.getProperty("user.language");
String s;
if(s1.regionMatches(true, 0, "1.4", 0, 3))
s = System.getProperty("user.country");
else
s = System.getProperty("user.region");
m_Locale = new Locale(s2, s);
的問題是在客戶機上的其他應用程序需要JRE 1.5或更高。
因此,如果(s1.regionMatches(真,0, 「1.4」,0,3))總是踢入別的
s = System.getProperty("user.region"); always returns null in JRE 1.4 or higher.
所以 新區域設置(S2,S)的線;
正在使用拋出空指針的空參數進行調用。
我知道這個代碼被放在這麼早就支持舊的JRE即1.1和1.3,其中user.region是一個有效的系統屬性。
我看到它的方式我有2個選項。
讓供應商參與進來,並希望他們在不告訴我們花錢升級的情況下進行更正。
重新編譯帶有更正的代碼,並用我自己的證書重新簽名罐子。並可能違反許可/支持協議。
或者是他們的第三個選擇?我還沒有看到任何方式設置在java中的系統屬性,而不在代碼本身這樣做。有沒有辦法?如果需要將文件推送給他們,我可以完全訪問客戶機。我只是不知道如何添加或更改默認的Java系統屬性不使用CMD行參數或在代碼中這樣做。
這個偉大的工程,非常感謝。 – Keibosh