代码之家  ›  专栏  ›  技术社区  ›  Keibosh

Java Applet中的Java区域设置问题

  •  1
  • Keibosh  · 技术社区  · 15 年前

    我有一个供应商小程序正在尝试使用不再受支持的区域设置。

    反编译代码如下

     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.区域匹配(真的,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是有效的系统属性。

    在我看来,我有两个选择。

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

    2. 用所做的更正重新编译代码,并用我自己的证书重新签署JAR。可能会违反许可/支持协议。

    还是他们的第三个选择?我还没有看到任何方法来在Java中设置系统属性,而不需要在代码本身中这样做。有办法吗?如果需要向客户机推送文件,我可以完全访问它们。我不知道如何添加或更改默认Java系统属性而不使用CMD行ARG或在代码中这样做。

    1 回复  |  直到 15 年前
        1
  •  1
  •   ChssPly76    15 年前

    查看如何通过Java插件启动Applet并访问客户机,您可能需要尝试设置 user.region 作为Java插件控制面板中的运行时参数。详见详情 here