供应商Applet中的Java Locale问题

时间:2009-08-27 20:18:25

标签: java applet locale

我有一个供应商Applet试图使用不再支持的区域设置。

De编译代码如下

 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及更高版本。

所以行if(s1.regionMatches(true,0,“1.4”,0,3))总是踢进else

 s = System.getProperty("user.region"); always returns null in JRE 1.4 or higher. 

所以      新的语言环境(s2,s);

使用null参数调用

抛出空指针。

我知道这段代码很久以前就被用来支持旧的JRE,即1.1和1.3,其中user.region是一个有效的系统属性。

我看到它的方式我有两个选择。

  1. 与供应商合作,希望他们在不告诉我们花钱升级的情况下进行更正。

  2. 使用更正的代码重新编译代码,并使用我自己的证书重新签名jar。并可能违反许可/支持协议。

  3. 或者他们是第三种选择?我还没有看到任何方法在java中设置系统属性而不在代码本身中这样做。有办法吗?如果需要将文件推送到客户端计算机,我可以完全访问客户端计算机。我只是不知道如何添加或更改默认的java系统属性而不使用cmd行arg或在代码中这样做。

1 个答案:

答案 0 :(得分:1)

看看如何通过Java插件启动applet并且您可以访问客户端计算机,您可能需要尝试在Java Plug-In控制面板中将user.region设置为运行时参数。详情请见here