Команды Java CMD работает для Windows, но не на CentOS - PullRequest
0 голосов
/ 24 октября 2018

Я запускаю приведенный ниже код в Windows, используя Java, и хочу запустить тот же код на компьютере с ОС CENT, используя Java, но не получаю никакого результата.Пожалуйста, дайте мне знать, какие изменения необходимы для решения этой проблемы.

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;

public class CommandPrompt {

    public static void main(String[] argv) throws Exception {
        try {
            Process child = Runtime.getRuntime().exec(commands);

            child = Runtime.getRuntime().exec("cmd /c \"\" aws cp E:\\rock.jpg s3://bucket");

            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(child.getOutputStream()));

            InputStream in = child.getInputStream();

            int c;
            while ((c = in.read()) != -1) {
                System.out.print((char) c);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            in.close();
        }

    }
}

Теперь я хочу запустить приведенный выше код в cent os (unix), но не получаю никаких результатов.

1 Ответ

0 голосов
/ 24 октября 2018

Здесь:

child = Runtime.getRuntime().exec("cmd /c \"\" aws cp E:\\rock.jpg s3://bucket");

Вы вызываете оболочку Windows cmd для вызова двоичного файла aws для копирования локального файла в s3.

Обратите внимание: это A) команда, специфичная для Windows, и B) информация о файловой системе Windows.

Краткий ответ: не ожидайте, что это будет работать в любой другой операционной системе.затем.Если вы не удалите деталь, чтобы использовать «cmd».

Для системы Linux вы должны убедиться, что на вашем пути есть некоторые инструменты aws , и использовать путь к файлу, похожему на Linux.

Но реальное решение - обратиться к https://aws.amazon.com/sdk-for-java/ и не вызывать некоторые двоичные файлы aws с помощью командной строки, а использовать интерфейсы Java для выполнения этих задач непосредственно в коде Java!

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