Как исправить среду TERM, не установленную в Intellij? - PullRequest
0 голосов
/ 07 января 2019

В настоящее время я работаю над приложением автоматизации Java, включающим Jsch. Однако, когда я запускаю свой код, он возвращает ошибку, сообщающую, что среда TERM не настроена.

Я уже пытался вручную добавить окружение в intellij, выбрав переменные окружения. Затем я добавляю TERM = xterm. Хотя, когда я запускаю его, он все равно не работает.

import com.jcraft.jsch.*;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


public class Driver {

public static void main(String[] args) throws Exception {

    JSch jsch = new JSch();

    Session session;
    try {

        // Open a Session to remote SSH server and Connect.
        // Set User and IP of the remote host and SSH port.
        session = jsch.getSession("username", "host", 22);
        // When we do SSH to a remote host for the 1st time or if key at the remote host
        // changes, we will be prompted to confirm the authenticity of remote host.
        // This check feature is controlled by StrictHostKeyChecking ssh parameter.
        // By default StrictHostKeyChecking  is set to yes as a security measure.
        session.setConfig("StrictHostKeyChecking", "no");
        //Set password
        session.setPassword("password");
        session.connect();

        // create the execution channel over the session
        ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
        // Set the command to execute on the channel and execute the command
        channelExec.setCommand("./script.sh");
        channelExec.connect();

        // Get an InputStream from this channel and read messages, generated
        // by the executing command, from the remote side.
        InputStream in = channelExec.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }

        // Command execution completed here.

        // Retrieve the exit status of the executed command
        int exitStatus = channelExec.getExitStatus();
        if (exitStatus > 0) {
            System.out.println("Remote script exec error! " + exitStatus);
        }
        //Disconnect the Session
        session.disconnect();
    } catch (JSchException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Консоль IntelliJ IDEA Run не является реальным терминалом, поэтому проблема.

Код можно запустить вручную вне IntelliJ IDEA или в окне инструмента «Терминал».

Для отладки вы можете использовать Удаленную отладку.

Связанный запрос: Добавить опцию для запуска конфигурации для запуска в реальной консоли .

0 голосов
/ 07 января 2019

Убедитесь, что переменная установлена ​​в вашей текущей оболочке, либо экспортировав ее, либо запустив код с установленной переменной для TERM.

Должно работать что-то похожее на следующее:

TERM=linux /path/to/your/executable --some-arguments

Следующее может относиться только к bash, но есть также способ экспортировать переменную, чтобы сделать ее глобальной.

После экспорта переменной вы можете проверить ее значение, используя:

echo $TERM

Пустой ответ означает, что переменная не установлена. Иначе, хорошо ... ты понял, я уверен. Чтобы экспортировать его глобально, в bash, то есть вы можете напрямую использовать командную строку или добавить команду экспорта в ваши точечные файлы, которые должны быть загружены при входе в систему

export TERM=linux

В любом случае, команда остается неизменной. Есть несколько терминалов и типов, «linux» - очень очень общий. Более подходящим для цвета решением может быть попытка использовать вместо этого xterm-256color.

export TERM=xterm-256color

Вам следует ознакомиться с основами терминала, если вы хотите узнать больше. Я надеюсь, что это может помочь вам достичь желаемого результата.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...