【问题标题】:How to set shell locale in Java JSch如何在 Java JSch 中设置 shell 语言环境
【发布时间】:2015-12-03 21:48:08
【问题描述】:

我正在使用JSch library 从一台机器到另一台机器执行 SSH 功能。我正在使用英文文本来比较结果,例如 “未找到结果”“无命令”。假设一个场景,如果远程机器 o/p 是另一种语言,那我们如何比较呢?

请纠正我,我应该使用类似的东西

jschSession.setConfig("Locale","en_US");  

为那个会话?

或者还有其他设置吗?

【问题讨论】:

  • 这些结果是什么?远程shell命令?本地 JSch 错误消息? SSH 服务器错误信息?
  • 嗨,马丁,是的,它是一个远程 shell 命令输出“未找到结果”和“没有这样的命令”,截至目前为英文。我还没有通过更改远程机器的语言环境进行检查。我正在尝试编写可能的验证条件。

标签: shell ssh environment-variables locale jsch


【解决方案1】:

首先,我不认为比较错误信息是一种可靠的方法。

您应该更好地测试命令退出代码。


无论如何,shell 会话的语言环境由LANG 环境变量控制:

$ export LANG=en_US.UTF-8
$ ls nonexisting
ls: cannot access nonexisting: No such file or directory
$ export LANG=de_DE.UTF-8
$ ls nonexisting
ls: Zugriff auf nonexisting nicht möglich: Datei oder Verzeichnis nicht gefunden

在 JSch 中,您可以使用 ChannelSession.setEnv 方法重载之一设置环境变量:

public void setEnv(Hashtable env)
public void setEnv(String name, String value)
public void setEnv(byte[] name, byte[] value)

仅当服务器支持 SSH env 请求时才有效。


当然,您也可以像执行其他命令一样执行export 命令。


请注意,并非所有命令都会反映LANG 变量。并非所有服务器都提供所有语言环境。

【讨论】:

    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2014-05-29
    • 2014-01-01
    相关资源
    最近更新 更多