проверил установленную версию Java: root @ dev # cd / usr / lib / jvm root @ dev: / usr / lib / jvm # ls default-java java-1.8.0-openjdk-amd64 java-8-openjdk-amd64
UnixCommand= 'java -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand
Я пытался выполнить одним из следующих способов:
1)
import os
process=os.system(command)
2)
process= subprocess.Popen(command)
process = subprocess.Popen(
command, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)
Но с ошибкой: sh: 1: API / java: не найдено 32512 Внутренняя ошибка сервера
Поскольку я пытался выполнить эту же команду непосредственно в оболочке Unix, она работает нормальнои я установил путь в файле / etc / environment , например which java
yields / usr / bin / java
обновить в $ JAVA_HOME и добавить то же самое в $ PATH , как export PATH=$PATH:$JAVA_HOME
, все еще показывая ту же ошибку.
UnixCommand= 'java -cp dataflow-bundled-2.3.0.jar MsSqlMigrator runner=DataflowRunner'
command= UnixCommand
Я пытался выполнить в любом из способов:
1)
import os
process=os.system(command)
2)
process= subprocess.Popen(command)
process = subprocess.Popen(
command,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True
)
output = process.communicate()
print(process)
Ожидается: выполнение команды unix через код API Django.