我正在使用SHELL通道在我的项目中使用jsch库。为了处理功能键,我们使用以下方法。这对我团队中的每个人都有效,并且在两天之前对我也一样。不确定,发生了什么功能键对我来说停止工作,但相同的代码对所有其他成员都起作用。我记得我也没有更改任何系统设置。 即使我创建了一个新的工作空间并克隆了该项目,但对我来说仍然存在相同的问题。
public static final String F1 = "\033[11~";
public static final String F2 = "\033[12~";
public static final String F3 = "\033[13~";
public static final String F4 = "\033[14~";
public static final String F5 = "\033[15~";
public static final String F6 = "\033[17~";
public static final String F7 = "\033[18~";
public static final String F8 = "\033[19~";
public static final String F9 = "\033[20~";
public static final String F10 = "\033[21~";
public static final String F11 = "\033[23~";
public static final String F12 = "\033[24~";
代码示例
>
JSchImp.setCommandExecuteWaitTime(2000);
JSchImp.SendCommand(FunctionKeys.F1);
public static void SendCommand(String command) throws Exception
{
try
{
if(channel.isConnected() == false)
{
throw new Exception("Not Connected");
}
result = "";
out.write((command + "\n").getBytes());
out.flush();
Thread.sleep(WAIT_TIME);
byte[] tmp = new byte[1024];
while (in.available() > 0)
{
int i = in.read(tmp, 0, 1024);
if (i < 0)
break;
result = new String(tmp, 0, i);
if (DETAILED_LOGGING)
System.out.print(result + "\n");
}
}