java - 在日语/中文机器上验证 DB2 命令的输出

标签 java windows db2 db2-luw

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

> 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 命令以其语言生成输出,例如日 native

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

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

最佳答案

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

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

当从Java执行外部程序时,可以使用Process.exitValue()获取其退出代码。

关于java - 在日语/中文机器上验证 DB2 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36906594/

相关文章:

java - 兴趣点 : not iterating through all excel row while inserting values to database

java - 浏览器使用 JEditorPane 强制蓝色背景

java.util.HashMap----看控制台,为什么打印顺序是这样的

c++ - 您如何试用小型/简单的 C 或 C++ 源代码?

c++ - C++ 中的自定义文件扩展名

java - 循环切换序列反模式

java - cmd.exe 意外挂起,具体取决于我使用的文件所在的位置

Node.js 到 DB2(使用 ibm_db)

db2 - SQL LIKE 列值加通配符 DB2

mysql - 找出表中没有的值