有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Japenese/Chinese机器上验证DB2命令的输出

该应用程序在Windows机器上运行良好,其中DB2是用英语设置的,因为需要验证执行的命令输出,如

> db2 attach to DB2 user db2admin using xxxxxx

 Instance Attachment Information

 Instance server        = DB2/NT64 10.5.1
 Authorization ID       = DB2ADMIN
 Local instance alias   = DB2

实际上,上面的输出被重定向到一个文本文件中,然后由Java代码验证为

String message = Utils.readFile(filePath);
message = message.trim().replaceAll("\\s+", " ");
String upperStr = message.toUpperCase();

if (upperStr.indexOf("INSTANCE ATTACHMENT INFORMATION") != -1
        && upperStr.indexOf("AUTHORIZATION ID") != -1)
    return "SUCCESS";
else
    return "FAILURE";

但问题是:在日语/汉语机器上,DB2命令以其语言生成输出,例如日语机器

インスタンス?Eアタッチ?﨣・インスタンス?Eサ?[バ?[ = DB2/NT 10.5.5 許可 ID = DB2ADMIN ・?[カル?Eインスタンス別名 = DB2

那么,如何修改该语言,使其像英语一样正常工作呢? 或者命令的输出只能用英语生成


共 (1) 个答案

  1. # 1 楼答案

    似乎您选择了一种不可靠的方式来确定外部程序的成功(或失败)。除了您正在处理的语言问题外,在尝试保存和解析程序输出时还有其他可能的问题

    检查外部程序结果的更好方法是查看其退出代码。按照惯例,大多数程序(包括DB2CLP)在成功结束时返回0,如果出现某种问题,则返回不同的值。你可以找到more information in the manual

    从Java执行外部程序时,可以使用^{}获取其退出代码