Запуск веб-сервера Django с использованием Java [duplicate]

вот как вы можете сделать это с помощью трюка с оболочкой:

  mysql -uroot -p -hslavedb.mydomain.com mydb_production & lt; & lt;  'select * from users'  

'& lt; & lt; & lt; инструктирует оболочку брать все, что следует за ней, как stdin, подобно каналу из эха.

использовать флаг -t для включения вывода в виде табличного формата

8
задан DavidPostill 3 December 2014 в 10:35
поделиться

4 ответа

Вы также можете использовать это:

String command = "python /c start python path\to\script\script.py";
Process p = Runtime.getRuntime().exec(command + param );

или

String prg = "import sys";
BufferedWriter out = new BufferedWriter(new FileWriter("path/a.py"));
out.write(prg);
out.close();
Process p = Runtime.getRuntime().exec("python path/a.py");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String ret = in.readLine();
System.out.println("value is : "+ret);

Запустить скрипт Python из Java

10
ответ дан Prateek 15 August 2018 в 20:09
поделиться
  • 1
    Что такое переменная? Я запускаю эту строку String c = "python c start python influensersDataset_edgelist.py"; Процесс p = Runtime.getRuntime (). Exec (c); но то же самое он просто заработает за 0 секунд. – Jose Ramon 3 December 2014 в 10:40
  • 2
    Параметр @FereRes означает, что вы хотите отправить параметр в скрипт, чтобы это было так ... – Prateek 3 December 2014 в 10:43
  • 3
    Странно, если я скопирую путь python \ to \ script \ script.py, чтобы консоль его работала нормально, однако здесь с pb она не реагирует. – Jose Ramon 3 December 2014 в 10:45
  • 4
    @FereRes см. Ссылку ниже. Я думаю, что это работает. – Prateek 3 December 2014 в 10:54
  • 5
    Да, в самом деле. Наконец, я проверил эту ссылку и нашел решение. – Jose Ramon 3 December 2014 в 10:55
String command = "cmd /c python <command to execute or script to run>";
    Process p = Runtime.getRuntime().exec(command);
    p.waitFor();
    BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
    BufferedReader bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
          String line;
        while ((line = bri.readLine()) != null) {
            System.out.println(line);
          }
          bri.close();
          while ((line = bre.readLine()) != null) {
            System.out.println(line);
          }
          bre.close();
          p.waitFor();
          System.out.println("Done.");

    p.destroy();
2
ответ дан Anshul Gupta 15 August 2018 в 20:09
поделиться
0
ответ дан anubhav 15 August 2018 в 20:09
поделиться

Я считаю, что мы можем использовать ProcessBuilder

Runtime.getRuntime().exec("python "+cmd + py + ".py");
.....
since exec has its own process we can use that
ProcessBuilder builder = new ProcessBuilder("python", py + ".py");
builder.directory(new File(cmd));
builder.redirectError();
....
Process newProcess = builder.start();
4
ответ дан Maddy 15 August 2018 в 20:09
поделиться
  • 1
    Исключение в потоке & quot; main & quot; java.io.IOException: не удается запустить программу "python & quot; (в каталоге «python python \ file.py»): Ошибка CreateProcess = 267. Недопустимое имя каталога. Я протестировал весь путь, но я получил то же самое. – Jose Ramon 3 December 2014 в 10:07
  • 2
    попробуйте изменить строку на массив. Я считаю, что это сработает. String[] cmd = new String[] {"python,"...",".."} – Maddy 3 December 2014 в 10:10
  • 3
    – Jose Ramon 3 December 2014 в 10:16
Другие вопросы по тегам:

Похожие вопросы: