2009-08-27 46 views
1

我有一個試圖使用不再支持的語言環境設置的供應商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個選項。

  1. 讓供應商參與進來,並希望他們在不告訴我們花錢升級的情況下進行更正。

  2. 重新編譯帶有更正的代碼,並用我自己的證書重新簽名罐子。並可能違反許可/支持協議。

或者是他們的第三個選擇?我還沒有看到任何方式設置在java中的系統屬性,而不在代碼本身這樣做。有沒有辦法?如果需要將文件推送給他們,我可以完全訪問客戶機。我只是不知道如何添加或更改默認的Java系統屬性不使用CMD行參數或在代碼中這樣做。

回答

1

看到通過Java插件啓動applet,並且您可以訪問客戶機,您可能需要嘗試在Java插件控制面板中將user.region設置爲運行時參數。查看詳情here

+0

這個偉大的工程,非常感謝。 – Keibosh